Robocopy - 记录哪些文件已被移动

问题描述 投票:0回答:1

我正在尝试使用以下 ROBOCOPY 命令将超过 30 天未修改的旧文件从 SourceFolder 存档到 ArchiveFolder

robocopy C:\SourceFolder C:\ArchiveFolder /mov /MINAGE:30 /copyall /s

效果很好,但我想在 C:\SourceFolder 的每个子文件夹中放置一个日志文件,以概述哪些文件已存档(C:\SourceFolder 中现在缺少哪些文件)。

示例:

输入

C:\SourceFolder\Documents\newFile1.doc
C:\SourceFolder\Documents\oldFile1.doc
C:\SourceFolder\Documents\oldFile2.doc
C:\SourceFolder\Projects\newFile1.pdf
C:\SourceFolder\Projects\oldFile1.xlsx

C:\ArchiveFolder (empty folder)

输出

C:\SourceFolder\Documents\newFile1.doc
C:\SourceFolder\Documents\archived_files.log
C:\SourceFolder\Projects\newFile1.pdf
C:\SourceFolder\Projects \archived_files.log

C:\ArchiveFolder\Documents\oldfile1.doc
C:\ArchiveFolder\Documents\oldfile2.doc
C:\ArchiveFolder\Projects\oldfile1.xlsx

其中

C:\SourceFolder\Documents\archived_files.log
应包含这两行
oldFile1.doc
oldFile2.doc

C:\SourceFolder\Projects\archived_files.log
应包含这一行
oldFile1.xlsx

有人可以告诉我如何创建这样的日志吗?

谢谢你

logging robocopy
1个回答
0
投票

Robocopy 无法为每个目录创建日志文件。

您需要使用单个 robocopy 日志,然后剪切/过滤属于目录的那些行,然后将这些行保存在文件夹中作为日志文件。 这是可行的,但并非没有努力。

有一个命令可以在您当前位于 SourceFolder 中的同一位置查看 ArchiveFolder ,这可能已经有帮助了?那么日志甚至是不必要的,额外的好处是输出始终是最新的。

类似的东西

 @echo off
 set peek=%cd:SourceFolder=ArchiveFolder%
 dir /B /ON %peek%\*.*

只需将其保存为“peek.bat”或您喜欢的名称,位于 PATH 环境变量一部分的文件夹下。

© www.soinside.com 2019 - 2024. All rights reserved.