我正在运行批处理文件,其中有一个forfiles命令
FORFILES -p%spinputarchrootpath% -m*.csv -d-365 -c"CMD /C DEL @FILE"
%spinputarchrootpath% variable maps to a folder location (Y:\Temp Documents\testfolder).
现在上面的命令由于文件夹名称(Temp Documents)中的空格而引发错误。
如何处理这个空间?我试过在%spinputarchrootpath%
变量周围加上引号,但它不起作用。
答案 0 :(得分:3)
将路径括在引号中:
FORFILES -p "%spinputarchrootpath%" -m *.csv -d -365 -c "CMD /C DEL @FILE"
请注意,-p
和"%spinputarchrootpath%"
之间有一个空格。在这种情况下没有空间它将无法工作。
答案 1 :(得分:1)
首先将目录更改为所需的文件夹,然后在没有/ p参数的情况下执行forfiles。
CD %spinputarchrootpath%
FORFILES -m*.csv -d-365 -c"CMD /C DEL @FILE"
答案 2 :(得分:1)
我遇到了同样的问题并找到了解决方案。 我认为你想要清空的文件夹的文件夹变量在结尾处有一个反斜杠。
这不起作用:
echo J | forfiles / P" C:\ temp files \ " / S / M * / D -7 / C" cmd / c del / F / S / Q @ path"
...但这有效(没有反斜杠)
echo J | forfiles / P" C:\ temp files " / S / M * / D -7 / C" cmd / c del / F / S / Q @ path"
此致
蒂诺
答案 3 :(得分:0)
检查帖子: How to Tell FORFILES to Execute Command on Path?
问题在于: -c“CMD / C DEL @FILE”
使用: -c“CMD / C DEL ^ 0x22 @ FILE ^ 0x22” 在文件周围添加额外的双引号