批处理文件中的转义驱动器名称

时间:2017-02-01 13:20:22

标签: windows batch-file escaping

我的批处理文件test.bat

C:\Windows\System32\cmd.exe /c FOR /D %i IN (C:\ProgramData\PuppetLabs\puppet\etc\ssl\*) DO RD /S /Q "%i"

当我从命令提示符手动运行上面的命令时,它运行良好并删除C:\ ProgramData \ PuppetLabs \ puppet \ etc \ ssl中的所有内容。

现在,在批处理文件中使用相同的命令,当我运行批处理文件时,它返回:

C:> test.bat的

C:\>C:\Windows\System32\cmd.exe /c FOR /D \ProgramData\PuppetLabs\puppet\etc\ssl\*) DO RD /S /Q "i"

\ProgramData\PuppetLabs\puppet\etc\ssl\*) was unexpected at this time.

以上输出错过了(C:来自批处理文件。

有什么想法吗?感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

问题是另一个问题!

注意从命令行运行时输出中是否缺少%i?还有很多不同的东西,直到命令行的下一个%i

批量使用for循环时,必须使用另一个百分号转义循环参数:

C:\Windows\System32\cmd.exe /c FOR /D %%i IN (C:\ProgramData\PuppetLabs\puppet\etc\ssl*) DO RD /S /Q "%%i"

应该工作:)

答案 1 :(得分:0)

你是否在没有for循环的情况下尝试过它?

Cmd.exe /C RD /S /Q "C:\ProgramData\PuppetLabs\puppet\etc\ssl*"