【发布时间】:2014-12-05 17:08:17
【问题描述】:
使用批处理文件我使用 McAfee 扫描我的 PC 中的病毒。在扫描结束时,它会在本地写入名为“OnDemandScanLog.txt”的文件。在我关闭系统之前的最后一步,我必须将此文件从本地目录复制到共享文件夹。 问题是有时它不会复制它。万一它失败了,我总是可以使用“复制”命令手动复制它,但我需要在扫描结束时完成它。 我假设我可以有条件地复制它......并检查 ERRORLEVEL 直到它被确定复制。然后它应该关闭PC。 有人可以帮我插入条件语句以确保它被复制。 我将附上我的批处理文件:
@echo off
REM Perform a Full scan and log result
if exist "%ProgramFiles(x86)%" (
set "PATH_=%ProgramFiles(x86)%\McAfee\VirusScan Enterprise"
set SHUTDOWN=shutdown /s /f
) else (
set "PATH_=%ProgramFiles%\McAfee\VirusScan Enterprise"
set SHUTDOWN=shutdown -s -f
)
set LOGDIR=C:\McAfee
set VADIR=\\servername\McAfee Logs\Log1\
"%PATH_%\scan32.exe" /Task {ED73BEB7-1E8F-45AC-ABBC-A749AF6E2710} %* /ANALYZE /MANY /ALL /CLEAN /DAM /NC /NOEXPIRE /PLAD /PROGRAM /SUB /STREAMS /UNZIP /THREADS=4 /TIMEOUT=15 /APPEND /AUTOEXIT
copy %LOGDIR%\OnDemandScanLog.txt /Y "%VADIR%"
start %SHUTDOWN%
【问题讨论】:
-
不,我没有使用“start”命令来启动 McAfee。我使用 %PATH_%\scan32.exe 并且它始终有效。唯一的问题是复制日志文件并不总是成功
-
This answer 可能会有所帮助,建议使用
xcopy而不是copy。顺便说一句,您应该使用%SHUTDOWN%或start "" %SHUTDOWN%,因为"title"是obligatory forstart命令 -
感谢您使用 xcopy 而不是复制 %SHUTDOWN% 而不是启动 %SHUTDOWN% 的建议。实际上我的意思不是“抓住”复制的错误,而是强迫它复制。我的意思是我想在循环中执行 copy 或 xcopy 命令,直到 %errorlevel% 为 0。我注意到它通过/失败不一致,因此尝试几次直到响应为零,我认为应该可以完成这项工作。需要类似'while'循环并检查 %errorlevel% 的条件
标签: batch-file copy