命令行-批处理文件调用另一个批处理文件


13

我有一个批处理文件,它调用PATH目录中存在的另一个批处理文件(基本上是通过其他开关调用可执行文件。)

: bar.bat:
foo.bat file1.txt
foo.bat file2.txt
etc.

在foo.bat中:

foo.exe -t -s %1

bar.bat执行第一个命令,但立即退出(即仅在file1.txt上运行)。

如何使此批处理文件多次调用另一个批处理文件?

Answers:


14

使用CALL关键字:

call foo.bat file1.txt
call foo.bat file2.txt

1
<从Duncan Smart的答案复制而来,只是为了保持在一起>除了@splattne的答案之外,如果需要提前返回,请在CALLed批处理文件中使用exit / b。
布拉德·布鲁斯

1
您也可以使用goto :eof早退。exit /b通常仅在需要返回代码时才需要。
乔伊(Joey)

我不是为什么,但是我正在努力使它起作用,我已经尝试了exit /bgoto: eof。追加CALLED蝙蝠的输出是否可以?call foo.bat > myfile
SSH

4

除了@splattne的答案外,如果您需要提早返回exit /b,请在CALLed批处理文件中使用。


2

另一个选项(与3.3之前的DOS兼容:-))是使用child(/ c)选项和要处理的另一个批处理文件的名称来调用命令进程。这样也可以打个电话,而不是打个链,甚至可以在真正古老的机器上工作(以防万一有人碰到它并在乎)。:-)


0

@回声关闭

回声WbLegalReport.cmd

一世:

cd I:\ CFS \ Batch \ jarDir

回声%CD%

WbLegalReport.cmd

回声%CD%

回声WatchResrAddDeleted.cmd

回声%CD%

WatchRestrAddDeleted.cmd

回声%CD%

我在这里尝试做的是依次调用这两个批处理文件。

无法这样做。

请帮助。

由于子控件无法返回主脚本,因此它在子脚本上失败了


0

Sanket,请勿直接调用批处理文件。使用“调用”命令。请参阅splattne的示例。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.