3

我正在运行一个批处理文件,其中有一个 forfiles 命令

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

%spinputarchrootpath% variable maps to a folder location (Y:\Temp Documents\testfolder).

现在上述命令由于文件夹名称(临时文档)中的空格而引发错误。

如何处理这个空间?我尝试在%spinputarchrootpath%变量周围加上引号,但它不起作用。

4

4 回答 4

5

我遇到了同样的问题并找到了解决方案。我认为您希望清空的文件夹的文件夹变量末尾有一个反斜杠。

这将不起作用:

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 文件" /S /M * /D -7 /C "cmd /c del /F /S /Q @path"

问候

蒂诺

于 2017-11-14T13:38:11.503 回答
3

将路径括在引号中:

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

-p请注意,和之间有一个空格"%spinputarchrootpath%"。在这种情况下,如果没有空格,它将无法工作。

于 2011-03-03T05:29:56.410 回答
1

作为一种解决方法,首先将目录更改为您想要的文件夹,然后在没有 /p 参数的情况下执行 forfiles。

CD %spinputarchrootpath%
FORFILES -m*.csv -d-365 -c"CMD /C DEL @FILE"
于 2013-05-24T04:41:13.380 回答
1

检查帖子: 如何告诉 FORFILES 在路径上执行命令?

问题出在部分:-c"CMD /C DEL @FILE"

使用:-c"CMD /C DEL ^0x22@FILE^0x22" 在文件周围加上额外的双引号

于 2013-08-22T06:53:57.373 回答