如何并行运行多个 DOS 命令?

Posted

技术标签:

【中文标题】如何并行运行多个 DOS 命令?【英文标题】:How to run multiple DOS commands in parallel? 【发布时间】:2012-06-16 04:07:41 【问题描述】:

如何运行多个dos命令?

我有一个for 循环,它运行服务器检测以检测哪个服务器工作并且速度很快。而且因为有更多的服务器,我不希望按顺序运行所有服务器检测,而是并行运行。

【问题讨论】:

看这里:***.com/questions/672719/… How do I run a bat file in the background from another bat file?的可能重复 这是一个仅使用windows批处理功能的完整脚本:***.com/a/11715437/2026975 Windows cmd is not DOS。 DOS中没有for循环或并行之类的东西 【参考方案1】:

您可以像这样与start 并行执行命令:

start "" ping myserver
start "" nslookup myserver
start "" morecommands

它们都将在各自的命令提示符下启动,并允许您从一个批处理文件同时运行多个命令。

希望这会有所帮助!

【讨论】:

此外,/b 选项允许在不创建新窗口的情况下执行start 命令。用 cmd 试试这个:start /b ping google.com & start /b ping example.com @NinoFiliu 你应该获得诺贝尔奖【参考方案2】:

我建议你看看“How do I run a bat file in the background from another bat file?”

此外,在“Parallel execution of shell processes”问题页面here 中给出了很好的答案(使用start 命令);

但我的建议是使用 PowerShell。我相信它会完全满足您的需求。

【讨论】:

【参考方案3】:

如果您有多个参数,请使用如下语法。我有一个 bat 文件,脚本如下:

start "dummyTitle" [/options] D:\path\ProgramName.exe Param1 Param2 Param3 
start "dummyTitle" [/options] D:\path\ProgramName.exe Param4 Param5 Param6 

这将打开多个控制台。

【讨论】:

【参考方案4】:

您可以与start 命令并行执行命令,例如:

start "" ping google.com

但要在没有新窗口的情况下执行,请使用/b 选项,例如:

start /b ping google.com -t
start /b ping example.com -t

此外,-t 选项使 ping 重复无限次。

【讨论】:

以上是关于如何并行运行多个 DOS 命令?的主要内容,如果未能解决你的问题,请参考以下文章

如何在多个文件夹和子文件夹中的文件上运行dos2unix命令? [重复]

dos里如何同时执行多命令啊?

DOS命令求助,如何合并多个RTF文件?

DOS中的特殊符号

如何在dos环境下,依次运行2个命令?

C++中如何同时运行俩个dos命令?