1,不要在for的子句里循环goto!
2,尽量不要在for的子句中放太多代码,设计、测试、修改都很麻烦!
3,如果可以,尽量把每一部分功能都标签段落,这样方便自己也方便别人。- @echo off
- :a:循环监视D:\scan目录
- for /f "delims=" %%a in ('dir /a/b/s D:\scan') do set a=%%a
- if not defined a (
- echo 请勿动,正在监控之中......
- ping 127.1 -n 5 >nul
- cls
- goto:a
- )
- :b:延迟30秒
- echo 30秒之后扫毒开始......
- ping 127.1 -n 30 >nul
- start "" "scan.exe"
- cls
- :c:循环监视Scan进程
- echo 正在扫描病毒......
- ping 127.0.0.1 -n 5 >nul
- tasklist|find /i "scan.exe"||goto:d
- cls
- goto:c
- :d:检查病毒扫描日志
- echo 病毒扫描完成......
- cls
- echo 正在检查病毒扫描日志......
- for /f "tokens=1-3 delims=-:/ " %%a in ("%date%") do set da=%%a&set db=0%%b&set dc=0%%c
- for /f "delims=" %%a in (D:\log\%db:~-2%%dc:~-2%%da%.log) do set a=%%a
- echo %a%|find /i "Risks: 0"&&xcopy D:\scan E:\scaned /cqfiserhk||start "" "Alarm.bat"
- echo 上传的数据没有病毒,已经转移到达目的地!
- cls
- goto:a
复制代码
|