我有一个 Windows 盒子和一个包含此类文件的文件夹:
2010-07-04 20:18 81 in01_Acct_20100704001.r
2010-07-07 05:45 165 in01_Acct_20100706001.r
2010-07-07 19:41 82 in01_Acct_20100707001.r
2010-07-07 10:02 81 in01_Acct_20100707002.r
2010-07-08 08:31 89 in01_Acct_20100708001.r
2010-07-10 04:51 82 in01_Acct_20100709001.r
并且我想使用批处理定期将所有这些文件移动到除最新文件之外的另一个文件夹(即 in01_Acct_20100709001.r),因为该文件有时仍在写入,移动它可能会导致目标文件夹中的文件覆盖下次运行该批处理,并导致文件内容丢失。
有关此案例的任何想法将不胜感激。
我认为这个批处理脚本可以做到这一点:
dir /TW /O-D /A-D /B > %TEMP%\tempFiles.txt
for /F "skip=1" %f IN (%TEMP%\tempFiles.txt) DO mv %f wherever
del %TEMP%\tempFiles.txt
解释一下它的作用:
编辑: 根据评论,这是一行版本 - 您可以将 dir 命令插入到 for 循环中:
for /F "skip=1" %f IN ('dir /TW /O-D /A-D /B') DO mv %f wherever
for /f "skip=1 delims=" %%F in ('dir *.log /b/a-d/o-d') do ( 移动 /Y D: Focus_Log\W3SVC1%%F D: Focus_Log\W3SVC1\Temp%%F )