如何使用一个主批处理文件运行多个批处理文件

如何使用一个主批处理文件运行多个批处理文件

我有三个想要运行的 bat 文件,位于三个不同的目录中:

目录/bat1/bat1.bat

目录/bat2/bat2.bat

目录/bat3/bat3.bat

我想使用一个主 .bat 来启动目录中的所有其他 bat。我无法使用 call,因为目录中每个不同的 bat 都有依赖关系,因此会出现错误。我尝试使用 start,但也没有用,它只会在文件夹中弹出命令提示符。

我知道这听起来有点令人困惑,但我想要做的是使用一个 .bat 文件在各自的目录中彼此独立的运行多个 .bat 文件。

答案1

如果你使用开始,其他的bat文件将为每个bat创建新的进程,并同时运行它们。

cd "\directory\bat1\"
start bat1.bat
cd "\directory\bat2\"
start bat2.bat
cd "\directory\bat3\"
start bat3.bat

但是如果你想在上一个任务完成后运行下一个任务,你可以使用称呼

cd "\directory\bat1\"
call bat1.bat
cd "\directory\bat2\"
call bat2.bat
cd "\directory\bat3\"
call bat3.bat

不要忘记光盘,否则它将尝试将目录更改为当前工作目录的子目录。

答案2

我找到了解决方案!我使用这个代码来让 bat 独立打开三个不同的 bat 文件:

cd "\directory\bat1\"
start bat1.bat
cd "\directory\bat2\"
start bat2.bat
cd "\directory\bat3\"
start bat3.bat

答案3

所以我努力解决这个问题,但这些解决方案或其他解决方案都不起作用。我想在“主”批处理文件中访问子文件夹并按顺序运行这些文件夹中的批处理文件。这就是我最终做的事情,

cd Folder1
call batch_cmd.bat
cd ..
cd Folder2
call batch_cmd.bat
cd ..

等等等等等等

由于我使用 javascript/nodejs 来生成这些命令和批处理文件,因此这种格式对我来说很好。

如果您想完全在批处理文件中执行某些操作,那么我建议您查找 powershell 脚本。

答案4

对我来说 - 它的作用是

ECHO 运行批处理文件..
:: 下面是没有双引号但以“\”结尾的路径。
cd path-to-the-file1
:: 下面是没有双引号的批处理文件名。
call batch-filename1

:: 以下是没有双引号但以“\”结尾的路径。cd
path-to-the-file2
:: 以下是没有双引号的批处理文件名。call
batch-filename2

相关内容