【发布时间】:2013-06-12 21:24:10
【问题描述】:
我正在尝试编写一个脚本来删除 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 目录中的所有文件,然后检查所有子目录。然后我检查剩余的文件,如果它是 empty 目录,请将其删除。
此脚本运行良好 - 我要删除的所有文件都被删除,而那些应该保留的文件仍然存在。但是,我注意到,当我运行这个批处理文件时,我收到了错误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
【问题讨论】:
标签: windows batch-file cmd directory rmdir