之前用自己的土办法写结果到文件,再从文件里用findstr来取结果,老是会有误报。
今天在Lz-MyST的努力下,换成了如下代码。
才发现批处理的%errorlevel%有这么妙的用法。感谢Lz-MyST!
程序代码
call :Compare c:\1.txt c:\2.txt
call :Compare c:\33a.txt c:\33b.txt
goto end
:Compare
if not exist %1 (goto :eof)
if not exist %2 (goto :eof)
echo n| comp %1 %2|findstr "文件比较无误"
if %errorlevel% == 1 echo %1 %2 %date% %time% >>c:\log.txt
goto :eof
:end
在开机脚本里适当位置放入这段代码,紫色部分c:\1.txt c:\txt 替换成自己要对比的文件,比如对比explorer,之前已复制正常的explorer.exe在d盘,那这里的调用就变成call :Compare c:\windows\explorer.exe d:\explorer.exe。
绿色部分改成网络的可写的共享目录,以后在此目录下查看对比结果,如果不对则有记录。比如我实际使用的这句代码:
程序代码
if %errorlevel% == 1 echo %1 %date% %time% >>\\server\gamelog\aa\@%computername%.txt
写到\\\\server\gamelog\aa目录下(此目录有写权限),以@计算机命名的TXT文件。