进程无法访问文件,因为它正由另一个程序

时间:2018-05-15 11:39:28

标签: batch-file ping

我正在尝试编写一个脚本来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但仍然是相同的结果。

2 个答案:

答案 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"
相关问题