我目前正在处理我的第一个初级IT职位,并且遇到了一个简单的批处理文件问题。计划文件夹清理 - 批处理文件
本质上,该文件每周通过任务计划程序运行。它从大于8天的服务器目录中删除文件和文件夹。它也应该删除空的文件夹。
forfiles /p "P:\blahblah" /s /m * /d -8 /c "cmd /c del /Q /S /F /A @path"
cd /d P:\blahblah
for /f "usebackq" %%d in (`"dir /ad/b/s | sort /R"`) do rd "%%d"
REM robocopy "P:\blahblah" "P:\blahblah" /s /move"
这里有两个问题; 它会偶尔删除几天前的文件。 它不会删除空文件夹。
该文件是由一位老初级IT员工编写的,没有任何文档。我的猜测是使用了多种方法来确保清理(具有讽刺意味)。我已经搜索谷歌,这里是我对每个命令的当前想法..
1)forfiles - forfiles命令似乎写入正确,我没有看到任何问题。 3)for - 不完全确定。3)for - 不完全确定。3)for - 不完全确定。批处理变量对我来说是新的,我不确定它是否正常工作。
4)robocopy - 我一直无法在网上找到一个实例,在那里有人将一个目录复制到自己进行清理。我还注意到那里有额外的引文,但我不确定它的错误。这条线对我来说似乎很奇怪。
通常我会尝试和测试我通过类似的东西,但它有点难以快速测试,因为我需要看看它是否基于日历日期去除东西。这就是我来这里的原因!
我保证我不会问我是否已经在互联网上寻找一个想法。任何帮助将不胜感激,我想更多地了解上述命令!
感谢您的帮助!
您的FOR命令将失败,因为它缺少脱字符以逃脱PIPE。另外,FOR命令应该使用delims选项来强制它不使用任何分隔符。你不应该需要usebackq选项。 Robocopy不会执行,因为它是用REM命令注释掉的。 – Squashman