bat脚本链接到python脚本
我有一个.bat文件,它可以设置一个环境,让用户可以执行几个特定工作的Python脚本。我的目标是为这些脚本创建快捷方式。
举个例子,用户运行这个.bat文件后,会弹出一个命令窗口,这时用户就可以输入 python go
,而不是输入 python theLongestPythonScriptNameInTheWorld.py
。
我的目标平台是Windows XP,所以 mklink
在这里不能用。我也不想用 fsutil hardlink
。我尝试过 set ok=theLongestPythonScriptNameInTheWorld.py
,但我更希望用户不需要输入 python %go%
(因为我觉得这样很麻烦)。我还想避免使用WSH,因为我希望这个程序能在原生的XP系统上运行。
除了 mklink
、fsutil
、set
和 WSH
,还有其他解决方案吗?
3 个回答
当我自己做类似的事情时,我只是创建了几个额外的批处理文件。
比如,你可以提供一个 py_go.bat
文件,用来运行 python theLongestPythonScriptNameInTheWorld.py
这个命令。
如果你想输入 python go
,我能想到的唯一方法就是把你的脚本改名为 go
。
或者,像大多数人一样,创建一个名为 go.bat
的脚本,内容如下:
@echo off
python yourLongestScriptNameInTheWorld.py %*
你可以在这个批处理文件中设置环境,然后运行 go [你的参数]
。这样用户输入的内容会更少。
你的批处理文件可以接受一个参数,然后根据这个参数决定运行哪个Python包。
@echo off
REM Set Environment Here
if %1=="GO" python yourLongestScriptNameInTheWorld.py %2 %3 %4 %5
if %1=="STOP" python anotherScript.py %2 %3 %4 %5
比如,如果这个批处理文件叫做 foo.bat
,用户可以输入:
foo GO arg1 arg2 arg3
另外,如果你不想让用户在运行批处理文件时输入参数(比如说,你是通过图标快捷方式来运行的),你可以使用CHOICE命令让用户从一个列表中选择Python包。
我相信,最终你会意识到,你其实是在用一种不太好用的脚本语言来运行你最喜欢的脚本语言,然后决定把所有这些操作都用Python来完成,而不是用批处理命令语言。