想做个检查局域网都有哪些机器开着的批处理
先做了个这样的
@echo offfor /l %%a in (2,1,254) do (echo 192.168.0.%%aping 192.168.0.%%a /n 1 |find "TTL"&&(echo 192.168.0.%%a >>result.dat))goto :eof复制代码
发现速度太慢了
后来又改成这样的
@echo offfor /l %%a in (2,1,254) do (echo 192.168.0.%%aping 127.0.0.1 -n 1start /min cmd /c "ping 192.168.0.%%a /n 1 |find "TTL"&&(echo 192.168.0.%%a >>d:\result.txt)")goto :eof复制代码
使用多线程的 发现这样开的窗口太多了 加个 ping 127.0.0.1 -n 1是因为怕开的太快机器响应不过来
但还是觉得进程太多了
有没有其他更好的办法实现这个功能
在网上找了下 没发现其他批处理的实现多线程的方法
再附加个问题:
批处理对双引号是怎么判断的,比如这句
start /min cmd /c "ping 192.168.0.%%a /n 1 |find "TTL"&&(echo 192.168.0.%%a >>d:\result.txt)"
这句可以正确把引号配对运行 但为什么程序就不会认为是前面一对引号,后面一对引号 为什么可以正确的认识是两对引号嵌套呢
start /min cmd /c
"ping 192.168.0.%%a /n 1 |find "TTL
"&&(echo 192.168.0.%%a >>d:\result.txt)"start /min cmd /c "ping 192.168.0.%%a /n 1 |find "TTL"&&(echo 192.168.0.%%a >>d:\result.txt)"[
本帖最后由 stuqx 于 2009-6-26 16:31 编辑 ]
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。