在Windows脚本

时间:2018-05-15 16:28:25

标签: batch-file cmd command-prompt

我想将文件移动到archive文件夹,但文件中修改的系统日期中的最大时间戳除外,并希望对folder 3这样的四个不同文件夹执行此操作将转到{{1 }和folder4folder 5folder 6folder系统日期已修改file112:00 AMfile 2,然后{{} 1}}将以这种方式存档它必须存档小于最新修改日期的所有剩余文件。

我希望在Windows cmd提示符

中使用它

Get-ChildItem -Path" C:\ app \ folder1 \" Sort-Object LastWriteTime -Descending 移动目的地t-Object -Skip 1 Move-Item -Destination" C:\ app \ folder2 \" |

修改

我希望修改我last question中提供的已接受答案。

我们的想法是在每个目录中运行脚本,而不只是在12:21 AMfile 1上运行脚本

这是代码:

Set

我希望使用的目录树看起来与此类似:

2

1 个答案:

答案 0 :(得分:0)

在您在上一个问题中接受我的答案后进行了多次交流,我已更新您的问题以包括最新确认的要求并修改我的上一个答案:

@Echo Off
Set "dirSrc=C:\Users\garang\Documents\input_files"
Set "dirDst=Archive"
Set "extSrc=*.xls"
CD /D "%dirSrc%" 2>Nul || Exit /B
For /D %%A In (*) Do (PushD "%%A"
    For /F "Skip=1 Delims=" %%B In (
        'Dir /B/A-D-H-L-S/O-D/TW "%extSrc%" 2^>Nul') Do (
        If Not Exist "%dirDst%\" MD "%dirDst%"
        Move /Y "%%B" "%dirDst%">Nul 2>&1)
    PopD)

将此脚本 movefiles.cmd 放入源目录(行Set上的2 C:\Users\garang\Documents\input_files 并双击它。

此脚本不假设存档目录已存在,如果不存在,则会创建它们。