我正在尝试编写一个脚本来删除 Windows 7 中 TEMP 文件夹中的项目。我只希望它删除 30 天或更早的文件。我正在一个文件夹中进行测试,该文件夹已在系统的环境变量中设置为 TESTTEMP。
我的脚本如下:
forfiles /p %TESTTEMP% /s /d -30 /c "cmd /c IF @ISDIR==FALSE del @FILE /q"
forfiles /p %TESTTEMP% /s /c "cmd /c IF @ISDIR==TRUE rmdir @FILE"
我背后的逻辑是,如果文件超过 30 天,该过程应该首先删除 TESTTEMP 目录中的所有文件,然后检查所有子目录。然后我检查剩余的文件,如果它是一个空目录,请将其删除。
该脚本完美运行 - 我要删除的所有文件都被删除,那些应该保留的文件仍然存在。但是,我注意到当我运行这个批处理文件时,我得到了错误,The system cannot find the file specified.
我相信它的rmdir
命令有问题并且无法找到它刚刚删除的目录......
这是我应该担心的事情吗,因为脚本似乎做了我想做的事?更好的是,有没有办法显示没有找到哪个文件,这样我就可以自己弄清楚发生了什么?
谢谢你的帮助!
(供参考,这里是批处理文件运行前后的文件夹结构,假设所有文件都超过 30 天:)
前:
-TestTemp
-More Test
testfile1.txt
testfile2.txt
testfile3.txt
testfile1.txt
testfile2.txt
testfile3.txt
后:
-TestTemp