【发布时间】:2017-07-30 06:23:41
【问题描述】:
我正在生成一个 Windows 批处理脚本来复制文件,仅在源更新时。如果文件更新了,我想删除另一个文件。
问题是我找不到在文件更新发生时触发事件的简单方法。
我想过使用%ERRORLEVEL%,但无论文件是否被复制,这都会给出 0。
我还想过将 xcopy 输出保存到文本文件,然后处理该文件,但这对于如此简单的任务似乎有点不切实际?
还有其他想法吗?
到目前为止的代码
SET SOURCEFILE=%CD%\source.txt
SET DELFILE=%CD%\toDelete.txt
SET DESTDIR=%WINDIR%\Deployment\
xcopy "%SOURCEFILE%" "%DESTDIR%" /c /d /q /y
REM IF File is updated, delete %DELFILE%
【问题讨论】:
-
for /F %%a in ('xcopy "%SOURCEFILE%" "%DESTDIR%" /c /d /q /y') do set "files=%%a"和if %files% gtr 0 echo File updated -
@Aacini 太完美了。我从来没有完全理解 FOR's in Batch,但效果很好。谢谢
标签: windows batch-file xcopy