我有一个我正在测试的批处理文件,我想要做的就是以下
CALL ping.bat
然后在该批处理文件运行之后我想运行另一个文件:
CALL ping2.bat
现在我在批处理文件中将这两行放在一起,第一批文件将成功触发,但第二批文件不会。有什么建议吗?
CALL ping.bat
CALL ping2.bat
Ping .bat就是:
ping 127.0.0.1
答案 0 :(得分:18)
检查第一批中的某个地方是否有exit
。有些人习惯性地使用它来跳出批处理文件,这不是退出批处理的正确方法(exit /b
或goto :eof
是)。
另一个选择是您可以在第一个中调用另一个批次而不 call
。
答案 1 :(得分:6)
如果您的ping.bat
内容仅仅是ping 127.0.0.1
,那么您.exe
可能只是在呼唤自己。
我会在ping
之后附加{{1}}以确保确定。
正如 jeb 所提出的那样,为批处理文件选择不同的名称是一个更好的解决方案。
答案 2 :(得分:5)
假设您有3个批处理文件。
如果您将所有三个批处理文件放在一个文件夹中(假设在C:\ NewFolder下) 然后,如果你双击ping3.bat,你肯定不会得到任何错误。
注意:如果您不想等待第一个命令完成,请使用start关键字启动该过程并继续批处理文件中的下一行,而调用 将按顺序执行(仅在当前进程完成后进入下一行,启动允许并行) 要做到这一点并行使用ping3.bat中的以下两行代码:
启动ping1.bat
启动ping2.bat
答案 3 :(得分:2)
不要从批处理中调用您正在调用的文件与您尝试调用的命令相同的名称...重命名为gnip.bat并且工作正常
答案 4 :(得分:2)
不完全确定你想在这里做什么,但我认为你想要这样做:
在这种情况下,您应该从实际的批处理文件中启动 ping.bat 和 ping2.bat ,如下所示:
::some code here
start /wait ping.bat
start /wait ping2.bat
::some code here
然后在 ping.bat 和 ping2.bat 中,最后一行应为退出。他们的代码应如下所示:
::some code here, might be ping 127.0.0.1
exit
现在您的实际批处理文件将启动 ping.bat ,它将等待它完成(退出)。一旦 ping.bat 关闭,您的实际批处理文件将转到下一行,它将启动 ping2.bat 等。
答案 5 :(得分:0)
ping命令在不同的操作系统上的行为方式不同。尝试使用-n开关强制ping命令在几个echo请求后停止。
ping -n 4 127.0.0.1