Windows 批处理文件:移动超过 10 天的文件和没有特定字符串的文件名



我正在为 Windows 7 中的任务计划程序创建一个批处理文件。逻辑是搜索文件夹中的文件,如果文件名没有特定字符串,并且超过 10 天,请将文件移动到另一个文件夹。

我已经尝试了很多命令,但无法实现(结合findstr和日期条件)。而且由于我对批处理命令很陌生。谁能给我一些脚本或建议?

这是我为移动文件名中没有特定字符串的文件而编写的内容,但不知道将日期条件放在哪里:

for /r %Path_new% %%H in ("*.avi") do (echo "%%~nH" |findstr /i "_connID=">nul ||((move /y "%%H" "%Path_achieve%" ) && (echo %date% %time% - %%H has been moved >> Log4BB.txt)) )

如果我在脚本中放置日期条件,它将是这样的,但无法获取文件名中具有特定字符串的文件:

forfiles /p %Path_new% /m *.avi /d -%Day_noconnid%  /c "cmd /c if @fname like '*_connID=*' (echo @path will be moved)" >> Log4BA.txt

对于机器人复制,我不知道如何指定要移动的文件。我的脚本如下:

for /r %Path_new% %%G in ("*.avi") do (^
    echo "%%~nG" |findstr /i "_connID=">nul ||(^
        robocopy "%Path_new%""%%~nG%%~xG" "%Path_achieve%" /maxage:10 /mov)^
) >> Log4BC.txt

终于,我得到了答案。Robocopy 有一个/XF,允许我输入文件名的条件。

robocopy %Path_new% %Path_achieve% *.avi /mov /xf "*_connID=*.avi" /minage:%Day_noconnid% /log+:"Log4B.txt"

现在工作得很好。谢谢壁球

最新更新