标题: [网络连接] ping代码运行报错的问题 [打印本页]
作者: drefong 时间: 2011-8-17 10:22 标题: ping代码运行报错的问题
本帖最后由 drefong 于 2011-8-17 10:35 编辑
一个ping网段的批处理,运行后报错,请大虾们指教
[code
@echo off
echo.
echo ------------------------------------------------------------------
echo 扫描中,请等待......
for /L %%i in (1,1,254) do ping 192.168.1.%%i | find "Reply" >> c:\ip.txt
pause
echo -------------------------------------------------------------------
echo.
echo 扫描已完成
echo 输出存活IP
for /F "token=3" %%i in (c:\ip.txt) do echo %%i
/code]
运行后提示
另一个程序正在使用此文件 进程无法访问
求指教
作者: CrLf 时间: 2011-8-17 10:29
本帖最后由 CrLf 于 2011-8-17 13:27 编辑
本贴标题修改后已基本符合版规,故删除原警告贴
作者: bingxing8000 时间: 2011-8-17 14:40
经测试。楼主的代码可以正常运行,没有出现楼主的情况。
为测试,对代码稍作了修改- @echo off
- echo.
- echo ------------------------------------------------------------------
- echo 扫描中,请等待......
- for /L %%i in (1,1,30) do ping /n 1 192.168.1.%%i | find "Reply" >> c:\ip.txt
- pause
- echo -------------------------------------------------------------------
- echo.
- echo 扫描已完成
- echo 输出存活IP
- for /F "tokens=3" %%i in (c:\ip.txt) do echo %%i
- pause >nul
复制代码
提醒一下楼主 "token=3"写错了,是"tokens=3"
作者: CrLf 时间: 2011-8-17 17:32
典型的句柄占用文件的实例,在同一个时间点上,同一个文件只能被一个输出句柄指向,请百度信号灯。
解决方案是避免句柄之间的权利冲突:- @echo off
- %1 %0 ::|find "Reply">>c:\ip.txt
- echo.
- echo ------------------------------------------------------------------
- echo 扫描中,请等待......
- for /L %%i in (1,1,254) do ping 192.168.1.%%i
- pause
- echo -------------------------------------------------------------------
- echo.
- echo 扫描已完成
- echo 输出存活IP
- for /F "token=3" %%i in (c:\ip.txt) do echo %%i
复制代码
作者: drefong 时间: 2011-8-18 15:21
感谢bingxing8000修正和CrLF的帮助,经过在公司机器上测试,发现有些机器出出现我上述情况,有些机器运行时候,有可能是安装桌面系统等软件导致冲突了,CrLF兄弟给的代码依然存在此问题,非常感谢两位。
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |