运行批处理程序,一直提示说:另一个程序正在使用此文件,进程无法访问。系统是正版win7家庭版。

批处理详细程序如下:
@echo off
echo.|arp -a >result.txt
:0
find"00-27-19-36-42-d4" result.txt 1>nul 2>nul&&(echo 你以恢复上网!
pause)||(arp -d
echo.|arp -a >result.txt
goto 0)

麻烦各位大侠指点指点。
与程序无关,因为程序在winxp和win7旗舰版(盗版)是可以正确运行的。我想是权限问题。因为在bat里以管理员身份运行arp -a 也是一样的提示:另一个程序正在使用此文件,进程无法访问。在cmd里运行arp -a就没问题。

分析一下你写的这个BAT:
获取你的网卡IP、网关MAC、网关IP保存到文件
在文件里查找到MAC即输出文字
否则清空ARP缓存
再次获取信息保存到文件

经我测试
提示信息可能是“错误的命令或者文件”
原因是FIND之后没有加一个空格
另外
提示信息还有可能是“特征字符串未找到”
因为ARP -a获取的是网关MAC
而非你网卡的MAC

最后
你这个批处理可以优化一下:
@echo off
:0
echo.|arp -a >result.txt
find "00-27-19-36-42-d4" result.txt 1>nul 2>nul&&(echo 你已恢复上网!
pause)||(arp -d
goto 0)追问

根据你的回复,修改了一下自己的程序,也试了一下你给的代码,结果还是一样,进程无法访问。我想问题不在代码上,而是在系统的问题,因为这个程序在winXP,或者win7旗舰版(盗版)上是能正确运行的。怎么解决?

追答

在你追问之前
我修改了几句
你用IPCONFIG /all和ARP -a看看两个MAC就知道了

追问

我需要的就是arp -a的MAC地址,也就是网关的。

追答

那么
你直接运行ARP -a后看到的MAC是否00-27-19-36-42-d4?

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-02-26
我的WIN7旗舰版无此问题。
建议你关闭UAC试试。步骤:控制面板-->操作中心-->更改用户账户控制-->从不通知(或者:用户账户和家庭安全-->用户账户-->更改用户账户控制设置-->从不通知)。
还可以试试在批处理上单击右键,选择“以管理员身份运行”
第2个回答  2011-02-25
这个问题很简单,楼主可以给我分了

如果我没有说错的话,你用了360安全卫士,对不对?

360本身有ARP防火墙的保护功能,所以会调用相关程序,让别人无法成功运行ARP -a(这样就达到了保护的作用,因为别的黑客病毒也完成不了)

希望对你有帮助.追问

不好意思,试过把360关闭了还是不行,在其他台winxp的机器上一样有360,但是可以。所以,不能给你分!

追答

个人还是认为是相关杀毒软件的影响或防火墙的影响.
在XP下是没有问题的,以前我用XP也没有出现类似的问题.
W7的权限管理有点不同,如果是有些软件保护起来,就算是管理员权限也会提示不行的.

相似回答