求助:使用批处理同时启动多目录文件仅启动第一个的问题
解决批处理仅启动第一个无限循环程序的问题
你的判断完全正确——call命令会让当前批处理进程等待被调用的程序/脚本执行结束后才继续运行,而你的三个目标都是无限循环的进程,所以第一个启动后,批处理就彻底卡在这了,后面的命令根本没机会执行。
解决方法很简单,把call换成start命令就行。start会创建一个新的独立进程来运行目标程序,不会阻塞当前批处理的执行流程,这样三个程序就能同时启动了。
修改后的代码示例(两种写法可选):
相对路径版本
cd dir1 start "" bat1.bat cd ../dir2 start "" bat2.bat cd ../dir3 start "" exe1.exe
绝对路径版本(推荐,避免目录切换出错)
start "" "C:\your\full\path\dir1\bat1.bat" start "" "C:\your\full\path\dir2\bat2.bat" start "" "C:\your\full\path\dir3\exe1.exe"
需要注意start后面的空引号"":如果目标程序的路径或名称包含空格,这个空引号是必须的(它会被当作新窗口的标题参数),否则start会误把带空格的路径当成窗口标题,导致程序启动失败。即使路径没有空格,加上空引号也不会有问题,算是个通用的好习惯。
内容的提问来源于stack exchange,提问作者DerpyNoob740
相关产品推荐
相关产品推荐

