【问题标题】:Forfiles - spaces in folder pathForfiles - 文件夹路径中的空格
【发布时间】:2011-03-02 07:04:26
【问题描述】:

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

【问题讨论】:

    标签: batch-file forfiles


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

    问候

    蒂诺

    【讨论】:

      【解决方案2】:

      用引号将路径括起来:

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

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

      【讨论】:

      • @Sahil:我不知道为什么我一开始没有注意,但现在我看到你也没有在其他参数后面放空格。我也没有,但现在我修正了我的答案。
      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

        查看帖子: How to Tell FORFILES to Execute Command on Path?

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-10-29
          • 2015-07-18
          • 1970-01-01
          • 2012-05-05
          • 1970-01-01
          • 1970-01-01
          • 2015-06-13
          • 1970-01-01
          相关资源
          最近更新 更多