【发布时间】:2021-07-05 12:03:03
【问题描述】:
我正在编写一个批处理文件,它将并行执行其他 4 个批处理文件:
@echo off
echo %time%
(
start call s1.bat
start call s2.bat
start call s3.bat
start call s4.bat
) | set /P "="
echo %time%
但这会打开 4 个新窗口。 谁能帮忙,如何避免打开多个窗口并在后台运行所有这 4 个批处理文件?
添加/B 是一个选项,但我不知道在哪里添加它。
(
start /B call s1.bat
start /B call s2.bat
start /B call s3.bat
start /B call s4.bat
) | set /P "="
给我一个错误:
The process tried to write to a nonexistent pipe.
由于我不想使用VB或任何其他脚本,如何批量执行?
【问题讨论】:
-
如果不使用 VBscript 或其他第三方实用程序,您将无法隐藏批处理文件窗口。您将得到的最好的结果是使用
START命令最小化选项。 -
另外,你会
start cmd.exe使用参数/D /CCall和你的批处理文件。Call像Start都是cmd.exe内部的。 -
如何使用 /B 的 start ?它说,启动应用程序而不创建新窗口。
-
我没有得到你的第二点。所以我应该只使用 start
? -
创建一些测试批处理文件来做一些简单的事情,也许是
@Echo %TIME% > "%~n0.log",然后尝试一下。但是,您将无法在没有 cmd.exe 窗口显示的情况下运行批处理文件,即使只有几分之一秒,您最好的希望是使用Start的/Min选项,(你已经被告知),即使那样你也会看到它“闪烁”。如果你想隐藏运行它,你需要使用 Windows Scripting Host,(或其他类似的实用程序),或者从 Window Task Scheduler 以 SYSTEM 运行它。
标签: windows batch-file cmd parallel-processing io-redirection