【发布时间】:2015-02-27 14:14:06
【问题描述】:
我正在尝试制作一个自动删除旧文件的脚本,这是我迄今为止想出的。
首先我为用户主目录创建一个输入文件。
命令:
dir downloads /s /b echo > input.txt
它像这样填充 .txt 文件:
F:\HomeDirs\a.Durge\Mijn Documenten\Downloads
F:\HomeDirs\a.eimers\Mijn Documenten\Downloads
F:\HomeDirs\a.eimers\system\Downloads
F:\HomeDirs\a.gacem\system\Downloads
在输入文件完成填充后,我希望将此作为输入,以删除名为 downloads 的文件夹中超过 30 天的文件
FOR /f %%G in (input.txt) DO forfiles /p %%G /C "cmd /c del %%G\*.* /q" /D -30
这在一定程度上有效,包含空格的文件路径不受影响。
我尝试在路径周围添加引号,但我认为我在某处搞砸了。
这是批次给我的错误:
D:\Scripts>forfiles /p "F:\HomeDirs\a.Durge\Mijn /C "cmd /c del "F:\HomeDirs\a.Durge\Mijn\*.* /q" /D -30
ERROR: Invalid argument/option - 'F:\HomeDirs\a.Durge\Mijn\*.* /q'.
Type "FORFILES /?" for usage.
正确处理不包含空格的文件路径。
我该如何解决这个问题?
【问题讨论】:
标签: batch-file for-loop cmd spaces