4

这个问题背后的目标是创建一个可移植的 Windows 脚本/程序,它可以帮助用户直接从 USB 密钥运行(控制台)程序(但不一定通过自动运行)。因此,脚本/程序在双击时会执行以下操作:

  • 启动一个控制台(cmd可以)并给出一个 DOS 命令提示符,
  • 将当前目录设置为WorkingDirUSB 密钥上的特定目录(其中包含各种 [Python] 程序),
  • 设置路径,以便用户可以运行在另一个 USB 密钥目录中找到的命令 (python.exe)(以便用户可以启动在 中找到的各种 Python 程序WorkingDir)。

整个过程基于USB 密钥上的Portable Python 。我还希望能够简单地将密钥的内容放在硬盘上并从那里使用它。

我试图编写一个包含以下命令的文件:

PATH=..\"Portable Python 2.7.2.1\App":%PATH%
cd WorkingDir
cmd

但我不确定如何调用它以便 Windows 运行它(因此我无法看到这些命令是否有效)。

我对 DOS 和 Windows 不太了解,因此非常感谢任何帮助!

4

2 回答 2

3

实际上,在您使用的 Windows 中;用于分隔路径:) 而且你不应该使用 .. 那样。您可以使用 %CD% 获取当前目录,然后从中导航。并且不要使用引号。此外,您可以将 @ 放在您不希望将其回显到控制台的任何命令之前。

您可以将其放入 run.bat 中(这应该可以工作:P):

@PATH=%PATH%;%CD%\..\Portable Python 2.7.2.1\App
@cd WorkingDir
@cmd

然后只需双击它,它将按照您的需要打开命令提示符。或者,也许您可​​以添加 autorun.inf 文件以自动打开它。

于 2011-09-12T21:17:38.323 回答
3

您需要创建两个文件:

自动运行.inf

[autorun]
open=cmd.exe "Python Console" /k autorun.cmd
action=Open Python Console...

自动运行命令

@Echo Off
CD %~d0\WorkingDir
Path %Path%;%~d0\Portable Python 2.7.2.1\App

该短语%~d0代表命令文件所在的驱动器,即闪存驱动器的字母 (E:)。

现在,我遇到了两个小问题。我的 USB 驱动器上已经有一个隐藏的、系统的、只读的 autorun.inf 文件。在编辑它之前,我必须使用以下命令取消保护它。

Attrib autorun.inf -r -s -h

我的第二个问题是 Windows 7 不会从 USB 驱动器自动运行。您必须在资源管理器中右键单击驱动器并选择“运行 Python 控制台...”

于 2011-09-12T23:29:29.067 回答