1

我正在尝试编写一个快速批处理脚本来查看一个文件的最后修改日期并将其与其他几个文件的最后修改日期进行比较,如果它大于其他那些 lastmods,它将文件复制到那些目录。这是我到目前为止所拥有的:

@echo off
for %%a in ([srcFile]) do set lastmodSrc=%%~ta
echo lastmodSrc
for %%a in ([dstFile1]) do set lastmodDst1=%%~ta
for %%a in ([dstFile2]) do set lastmodDst2=%%~ta
for %%a in ([dstFile3]) do set lastmodDst3=%%~ta
for %%a in ([dstFile4]) do set lastmodDst4=%%~ta

if lastmodSrc GTR lastmodDst1 xcopy [srcFile] [dstDir1] /-y
if lastmodSrc GTR lastmodDst2 xcopy [srcFile] [dstDir2] /-y
if lastmodSrc GTR lastmodDst3 xcopy [srcFile] [dstDir3] /-y
if lastmodSrc GTR lastmodDst4 xcopy [srcFile] [dstDir4] /-y

pause

方括号是完整的路径名。它现在正在做的是将 lastmodSrc 和 lastmodDst 保存为字符串(至少它看起来是这样),因此它实际上并没有检查 mod 日期。我在 Windows 中的批处理脚本方面严重不足,我想这里有人可以提供帮助。提前致谢!

4

1 回答 1

1

另一种可能更简单的方法(假设我理解目标)是使用/dxcopy 上的选项。如果给出(没有日期),它只会在源更新时复制文件:

xcopy /d srcfile dstfile
于 2011-09-22T16:02:28.753 回答