0

我需要为一个目录创建一个备份批处理脚本。它将每 10 分钟更新一次。我希望它只更新已添加到目录或在上次备份后修改的文件。

我尝试使用这个脚本:

@ECHO OFF
SET srcdir=D:\Source
SET tgtdir=D:\Target
SET /A topcnt=3
SET /A cnt=0
FOR /F "tokens=*" %%F IN ('DIR /A-D /OD /TW /B "%srcdir%"') DO (
  SET /A cnt+=1
  SETLOCAL EnableDelayedExpansion
  IF !cnt! GTR !topcnt! (ENDLOCAL & GOTO :EOF)
  ENDLOCAL
  COPY "%srcdir%\%%F" "%tgtdir%"
)

我遇到的问题是它只适用于批处理文件所在的目录,它将返回最近的三个文件,包括批处理文件本身。此外,复制功能不起作用。该程序未将 srcdir 与文件扩展名连接,因此程序无法确定要复制的文件。请指教。

4

1 回答 1

0

我不明白您的代码与您在问题第一段中陈述的目标有何关系。如果您的目标真的如您所说的那么简单,那么您不需要批处理文件。您只需安排以下命令每 10 分钟运行一次:

xcopy /d D:\Source\* d:\Target

上述命令将仅复制自上次备份以来已修改的新文件或文件。

如果您的备份要求变得更加复杂,那么您可能应该切换到 ROBOCOPY。它有很多选择,可能会满足您的需求。仍然不需要批次。

于 2012-07-25T01:19:19.813 回答