我正在尝试使用以下 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
应包含这两行
和
C:\SourceFolder\Projects\archived_files.log
应包含这一行
有人可以告诉我如何创建这样的日志吗?
谢谢你
Robocopy 无法为每个目录创建日志文件。
您需要使用单个 robocopy 日志,然后剪切/过滤属于目录的那些行,然后将这些行保存在文件夹中作为日志文件。 这是可行的,但并非没有努力。
有一个命令可以在您当前位于 SourceFolder 中的同一位置查看 ArchiveFolder ,这可能已经有帮助了?那么日志甚至是不必要的,额外的好处是输出始终是最新的。
类似的东西
@echo off
set peek=%cd:SourceFolder=ArchiveFolder%
dir /B /ON %peek%\*.*
只需将其保存为“peek.bat”或您喜欢的名称,位于 PATH 环境变量一部分的文件夹下。