使用bat文件运行多个cmds?

时间:2017-01-02 15:05:00

标签: python batch-file cmd

我一直在尝试运行多个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等。 请帮忙解决这个问题。 最诚挚的问候。

1 个答案:

答案 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 /?