Forfiles - 文件夹路径中的空格

4

我正在运行一个批处理文件,其中包含一个 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%变量周围放置引号,但它不起作用。

4个回答

7
我遇到了同样的问题并找到了解决方案。 我认为你要清空的文件夹的变量在结尾处有反斜杠。
这个命令是不会生效的:
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"
祝好!
Tino

对我来说完美地工作了!谢谢你。 - Fabricio Araujo

3

请将路径用引号括起来:

FORFILES -p "%spinputarchrootpath%" -m *.csv -d -365 -c "CMD /C DEL @FILE"

注意,在-p"%spinputarchrootpath%"之间有一个空格。如果没有空格,它将无法工作。

@Sahil:我不知道为什么一开始没有注意到,但现在我看到你其他参数后面也没有放空格。而我也是,但现在我已经修复了我的答案。 - Andriy M

1

1

作为一种解决方法,首先切换到您想要的文件夹,然后执行forfiles命令而不使用/p参数。

CD %spinputarchrootpath%
FORFILES -m*.csv -d-365 -c"CMD /C DEL @FILE"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接