如何并行运行多个 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 命令?的主要内容,如果未能解决你的问题,请参考以下文章