0

我在来查找在最后一天更改的所有文件并将它们保存到存档目录中。

该脚本可以完美地将文件从一个目录拉到另一个目录,但是当有子目录时它不会执行所需的功能。

例如,我有一个源位置和一个存档目录。在源目录中有以下结构:

C:\Temp\Source\test1.txt
C:\Temp\Source\Folder\test2.txt

存档目录只是以下位置,其中没有文件/子文件夹:

C:\Temp\Archive

我当前的使用ForFiles同时拾取test1.txt并将test2.txt它们转储到Archive目录中,这是一个不希望的结果:

C:\Temp\Archive\test1.txt
C:\Temp\Archive\test2.txt

我想要做的是保留文件夹结构并得到这个结果:

C:\Temp\Archive\test1.txt
C:\Temp\Archive\Folder\test2.txt

这是我目前用来实现不良结果的代码:

FORFILES /S /p %source_dir% /m *.* /d +%datedsub% /c "cmd /c copy @path %archive_dir%"

%datesub%只是我决定从哪个日期复制的变量。

我注意到我可以通过使用@relpath参数来实现这一点,删除引号和.\,然后将其附加到 ,%archive_dir%以便我指定整个目标路径而不仅仅是Archive位置。

我的问题是我不知道如何@在命令中操作变量ForFiles

4

0 回答 0