【问题标题】:Using Batch Files to update and backup a directory使用批处理文件更新和备份目录
【发布时间】:2012-07-25 00:28:06
【问题描述】:

我需要为一个目录创建一个备份批处理脚本。它将每 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 与文件扩展名连接,因此程序无法确定要复制的文件。请指教。

【问题讨论】:

  • 您是否编写了该脚本,或者您是否正在尝试调整现有脚本以满足您的需求?它似乎与您声明的目标无关。

标签: batch-file directory backup modified-date


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-30
    • 1970-01-01
    相关资源
    最近更新 更多