我正在处理批处理文件以收集我的两个子网客户端的mac地址但是由于某种原因我的批处理文件没有正确结束第一个循环,所以第二个循环没有被执行,因此其余的脚本没有被执行。关于为什么会发生这种情况的任何想法?
for /L %%i in (1,1,254) do ping.bat 192.168.232 %%i
for /L %%i in (1,1,254) do ping.bat 192.168.233 %%i
REM Some other stuff goes on here but the second loop never gets executed
提前多多感谢
编辑: ping.bat只包含这个:
nbtstat -A %1.%2
通过NetBIOS获取MAC地址
答案 0 :(得分:2)
启动批处理文件将中止“母”批处理文件。虽然她似乎完成了当前的路线;你的第一个FOR循环实际执行了254次。
添加CALL语句可解决此问题:
for /L %%i in (1,1,254) do call ping.bat 192.168.232 %%i
for /L %%i in (1,1,254) do call ping.bat 192.168.233 %%i
echo Test complete!
在引入CALL语句之前,通过在命令解释器的新实例中运行子批处理文件来解决这个问题:
for /L %%i in (1,1,254) do COMMAND /C ping.bat 192.168.232 %%i
答案 1 :(得分:0)
很可能它正在等待来自另一端的响应。你没有尝试减少时间吗?我建议你添加一个虚拟计数器来检查它是否在等待响应或挂起......: - )