我正在尝试编写一个脚本来ping ip范围并返回活动ip的.txt报告以用作变量,将更新的文件夹复制到所有活动终端。 当脚本运行时,我遇到了第一个障碍,但显示错误消息“进程无法访问该文件,因为它正被另一个程序使用”。 我的脚本如下。
@echo off
:start
FOR /L %%a in (1,1,255) do @(
echo pinging ip range: 172.26.8.%%a
ping -n 1 -w 500 172.26.8.%%a | FIND /i "Reply">>PTEST.txt
)
)
echo ***Scan complete.***
pause
end
我尝试在PTEST.txt之后添加2<& 1但仍然是相同的结果。
答案 0 :(得分:0)
您可能应该使用STDERR重定向来保存该范围内不存在的IP,但应该没有明显的理由PTEST.txt
应该使用您发布的内容。
但是,您确实看起来有不平衡的括号,因此如果您发布的内容实际上是另一个For
/ If
块的一部分,则应显示脚本的其余部分。< / p>
@Echo Off
( For /L %%A In (1,1,255) Do (
Echo Pinging IP address: 172.26.8.%%A
Ping -n 1 -w 500 172.26.8.%%A 2>Nul|Find /I "Reply"
)
)>"PTEST.txt"
Echo ***Scan complete.***
Pause
答案 1 :(得分:0)
我认为问题在于您的批处理作业名称为“ ping.bat”,您致电
Ping -n 1 -w 500 172.26.8.%%A 2>Nul|Find /I "Reply"
所以您的ping.bat是被调用的,而不是ping.exe。
将行更改为
Ping.exe -n 1 -w 500 172.26.8.%%A 2>Nul|Find /I "Reply"