我想将包含多个子文件夹的所有 csv 文件复制到一个文件夹中。但我只想要不超过 30 天的文件。
这是我目前所拥有的:
for /R C:\Source %%f in (*.csv) do copy %%f U:\Target
我知道 robocopy 有更多的可能性,但我无法在我的代码中使用 robocopy:
for /R C:\Source %%f in (*.csv) do robocopy %%f U:\Target
答案1
您可以使用该forfiles
命令,其中有指定最短日期的选项。
forfiles /p C:\Source /m *.csv /s /c "cmd /c copy @path U:\Target" /d 22-10-2019
不幸的是,没有办法指定“不早于 [n] 天的文件”,这就是我使用硬编码日期的原因。
答案2
这对你有用:
for /f "tokens=* delims= " %%a in ('forfiles /p SourcePath /m *.csv /s /c "cmd /c echo @path" /d -30') do copy "%%~a" TargetPath