这些不同的批处理文件在单独执行时运行正常,但为了方便起见,我一直试图从一个位置一次执行它们,以免我浏览许多不同的子文件夹来逐个执行它们。
我原本以为我的第一次测试尝试会有一些批处理文件可以使用:
CALL "C:\Steam\steamapps\common\Sins of a Solar Empire Rebellion\GameInfo\Sins_text_to_bin.bat"
CALL "C:\Steam\steamapps\common\Sins of a Solar Empire Rebellion\Mods-Rebellion v1.83\Enhanced 4X Mod - Git Clone\GameInfo\Sins_text_to_bin.bat"
CALL "C:\Steam\steamapps\common\Sins of a Solar Empire Rebellion\Mods-Rebellion v1.83\Star Wars Interregnum - Git Clone\GameInfo\Sins_text_to_bin.bat"
但是当我运行时,除了cmd窗口出现一瞬间然后关闭之外没有任何事情发生,没有执行任何引用的批处理文件。
经过多次尝试,唯一有效的是:
cd "C:\Steam\steamapps\common\Sins of a Solar Empire Rebellion\GameInfo"
CALL "Sins_text_to_bin.bat"
cd "C:\Steam\steamapps\common\Sins of a Solar Empire Rebellion\Mods-Rebellion v1.83\Enhanced 4X Mod - Git Clone\GameInfo"
CALL "Sins_text_to_bin.bat"
cd "C:\Steam\steamapps\common\Sins of a Solar Empire Rebellion\Mods-Rebellion v1.83\Star Wars Interregnum - Git Clone\GameInfo"
CALL "Sins_text_to_bin.bat"
但是这并不会同时运行批处理文件;相反,它会一个接一个地执行它们。
我知道我可能在这里缺少一些基本的东西,但我几乎是一个文盲的人,有这样的东西,所以请善待;)
答案 0 :(得分:1)
以下命令可以满足您的期望。 'master'批处理文件看起来像
START "C:\Steam\steamapps\common\Sins of a Solar Empire Rebellion\GameInfo\Sins_text_to_bin.bat" CALL "C:\Steam\steamapps\common\Sins of a Solar Empire Rebellion\GameInfo\Sins_text_to_bin.bat"
START "C:\Steam\steamapps\common\Sins of a Solar Empire Rebellion\Mods-Rebellion v1.83\Enhanced 4X Mod - Git Clone\GameInfo\Sins_text_to_bin.bat" CALL "C:\Steam\steamapps\common\Sins of a Solar Empire Rebellion\Mods-Rebellion v1.83\Enhanced 4X Mod - Git Clone\GameInfo\Sins_text_to_bin.bat"
START "C:\Steam\steamapps\common\Sins of a Solar Empire Rebellion\Mods-Rebellion v1.83\Star Wars Interregnum - Git Clone\GameInfo\Sins_text_to_bin.bat" CALL "C:\Steam\steamapps\common\Sins of a Solar Empire Rebellion\Mods-Rebellion v1.83\Star Wars Interregnum - Git Clone\GameInfo\Sins_text_to_bin.bat"
答案 1 :(得分:1)
到call
命令意味着执行它,等到它完成后再继续
到start
命令意味着,在另一个cmd
实例中执行它并继续而不等待它完成。
因此,如果您想并行执行多个程序,则应使用start
。第一个引用的参数是新实例的标题(可以为空:""
)。 /D
参数提供了一个工作目录。必须引用带空格的文件名/路径。所以最后一行看起来像是:
start "title" /d "<my folder>" "<my program>"
或在你的情况下:
start "" /D "C:\Steam\steamapps\common\Sins of a Solar Empire Rebellion\GameInfo" "C:\Steam\steamapps\common\Sins of a Solar Empire Rebellion\GameInfo\Sins_text_to_bin.bat"
答案 2 :(得分:0)
我找到了解决方案!
我在第二个代码窗口中发布的上述“半工作”的尝试很接近。似乎以这种方式使用call
命令会强制第一批处理在下一个批处理开始之前完成。
如果您希望所有引用的批处理文件像我一样同时执行,那么start
而不是call
命令将起作用:
cd "\directory\bat1\"
start bat1.bat
cd "\directory\bat2\"
start bat2.bat
cd "\directory\bat3\"
start bat3.bat
在我的特定情况下使用我之前的示例尝试看起来像这样:
cd "C:\Steam\steamapps\common\Sins of a Solar Empire Rebellion\GameInfo"
start Sins_bin_to_text.bat
cd "C:\Steam\steamapps\common\Sins of a Solar Empire Rebellion\Mods-Rebellion v1.83\Enhanced 4X Mod - Git Clone\GameInfo"
start Sins_bin_to_text.bat
cd "C:\Steam\steamapps\common\Sins of a Solar Empire Rebellion\Mods-Rebellion v1.83\Star Wars Interregnum - Git Clone\GameInfo"
start Sins_bin_to_text.bat