Robocopy 替换同一日期文件移动

Robocopy 替换同一日期文件移动

我正在使用 robocopy 移动数据。我想实现这一点

如果源文件数据(较新或相同)则移动/覆盖数据,否则跳过文件

我需要一个开关或一种方法来排除较新的而不是较新的或相同数据。我正在使用 Robocopy 清理并将大量数据移动到大型存储设备。

删除源文件中与目标文件日期匹配的一行也很有用

/XO排除文件同一日期或目标中较新的文件 /XN排除源中较旧且目标中较新的文件

部分数据已存在于该来源。

我的问题是,我只想排除较旧的数据,而不是相同的日期。我想确保移动(并覆盖以使源数据干净)具有新数据或与源数据相同的数据。

我正在使用/XOswitch

/XO:排除旧文件 - 如果目标文件存在并且日期与源文件相同或更新 - 则不必覆盖它。

问题是我还想移动相同日期的数据,而不仅仅是较新的数据。有办法吗?

答案1

Robocopy 替换同一日期文件移动

如果源文件数据(较新或相同)则移动/覆盖数据,否则跳过文件

为了完成此使用Robocopy使用我在下面提供的语法和所有内容的示例批处理脚本。

我只想排除较旧的数据,而不是相同的日期。我想确保移动(并覆盖以使源数据干净)具有新数据或与源数据相同的数据。

问题是我还想移动相同日期的数据,而不仅仅是较新的数据。

由于默认情况下 Robocopy 只会在源和目标具有不同的时间戳或不同的文件大小时才会复制文件,/IS因此您必须使用开关才能复制相同的数据,然后如果您使用开关/MOVE,它还会从源中删除这些文件和文件夹。


使用的 Robocopy 选项

(我特别使用了这些开关,但为了以防万一,您应该进行测试以确认所有工作均按预期进行。)

/S         : Copy Subfolders, but not empty ones.
/NP        : No Progress - don’t display % copied. (for cleaner log file)
/R:n       : Number of Retries on failed copies - default is 1 million.
/MOVE      : Move files and dirs (delete from source after copying).
/IS        : Include Same, overwrite files even if they are already the same.
/TS        : Include Source file Time Stamps in the output. (for log file)
/FP        : Include Full Pathname of files in the output. (for log file)
/LOG+:file : Output status to LOG file (append to existing log).

对于以下变量:

  • SET SRCRoot="\\Server\Share\Source"
  • SET DESTRoot="\\Server\Share\Destination"

SET SRCRootSET DESTRoot您将从最顶层递归向下复制的根\父目录。您可以将其中任何一个设置为驱动器号路径(例如C:\Path),也可以保留为 UNC 路径(即\\server\share\folder),无论哪种方式都可以。

  • SET LOG=C:Path\Log.txt

SET LOG是附加的日志文件名和位置。它也可以指向驱动器完整路径或 UNC 路径。您可以查看此文件以获取已复制的内容、未复制的内容、错误消息等所有详细信息。这完全是可选的,但我建议始终使用它并根据需要进行检查以进行故障排除或确认。

Robocopy 批处理脚本示例

如果您还需要复制从目标复制到源的文件和文件夹的文件级别安全性(ACL),请告诉我,因为您可能需要包含/SEC/COPYALL开关。

@ECHO ON
SET SRCRoot="\\Server\Share\Source"
SET DESTRoot="\\Server\Share\Destination"
SET LOG=C:Path\Log.txt

:: --// Robocopy Options
:::: --// If you do not want a log file, remove the "/LOG+:%LOG%" below
SET OPT=/MOVE /IS /S /NP /R:5 /LOG+:%Log% /TS /FP
SET CMD=Robocopy "%SRCRoot%" "%DESTRoot%" *.* %OPT%
%CMD%
EXIT /B

可选的 Robocoy 开关

(如果您需要其中任何一个,请告诉我,如果您需要任何示例,我很乐意更新我的答案)

/E       : Copy Subfolders, including Empty Subfolders.
/SEC     : Copy files with SECurity (equivalent to /COPY:DATS).
/DCOPY:T : Copy Directory Timestamps.
/COPYALL : Copy ALL file info (equivalent to /COPY:DATSOU)

无人值守自动化调度

参考我的回答计划任务对于使用以下方式安排批处理脚本时需要选择的选项、陷阱等任务计划程序运行正常。屏幕截图和所有内容均已提供,如果您认为该答案有用且值得,请随意点赞 — 无需压力,这只是您可能觉得有用的额外资源。


更多资源和阅读材料

相关内容