我正在为 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"
现在工作得很好。谢谢壁球