我一直在尝试运行多个cmd以使用不同的参数执行相同的命令,但cmd不起作用。这是运行文件的代码
cd\
cd F:\A 5th Semester Data\CN\Project\
start cmd \k python test.py A 5000 configA.txt
下一个语句将包含B,5001 configB.txt等。 请帮忙解决这个问题。 最诚挚的问候。
答案 0 :(得分:0)
包含空格字符的文件和文件夹路径必须用双引号括起来,如上一个帮助页面输出的最后一段所述,方法是在命令提示符窗口cmd /?
中运行。
帮助还解释了参数/K
,用于在Windows命令解释程序完成python
执行后保持控制台窗口打开,这意味着在Python完成执行test.py
之后。
命令 CD 需要使用参数/D
,如果还应按照帮助输出中的说明通过在命令提示符窗口cd /?
中运行来切换驱动器。
cd /D "F:\A 5th Semester Data\CN\Project"
start cmd /k python test.py A 5000 configA.txt
在命令提示符窗口start /?
中运行时输出命令 START 的帮助,该窗口列出并解释参数/Dpath
。
所以上面的两行也可以写成一行:
start "Python Processing" /D"F:\A 5th Semester Data\CN\Project" %SystemRoot%\System32\cmd.exe /K python.exe test.py A 5000 configA.txt
但看起来你真正需要的是一个包含这些行的批处理文件:
cd /D "F:\A 5th Semester Data\CN\Project"
python.exe test.py A 5000 configA.txt
python.exe test.py B 5001 configB.txt
rem and so on
或使用 FOR 循环和具有延迟扩展的环境变量:
@echo off
setlocal EnableExtensions EnableDelayedExpansion
cd /D "F:\A 5th Semester Data\CN\Project"
set "Number=5000"
for %%I in (A B C D E) do (
python.exe test.py %%I !Number! config%%I.txt
set /A Number+=1
)
endlocal
要了解使用的命令及其工作原理,请打开命令提示符窗口,执行以下命令,并完全阅读为每个命令显示的所有帮助页面。
cd /?
echo /?
endlocal /?
for /?
set /?
setlocal /?