批处理语法问题。引用或转义不正确?

批处理语法问题。引用或转义不正确?

这里有一些我遗漏的语法。运行此批处理文件:

for /d %a in ("c:\Documents and Settings\*.*") do mkdir "%a\Application Data\vlc"
for /d %a in ("c:\Documents and Settings\*.*") do echo qt-privacy-ask=0 > "%a\Application Data\vlc\vlcrc"

我得到了这个输出:

\Documents was unexpected at this time.

答案1

是的,你明白了,官方参考:微软

FOR 命令

使用 %variable 在命令提示符下执行 for。使用 %%variable 在批处理文件中执行 for 命令。

答案2

我发现了问题... 似乎批处理需要双倍 %% 来表示变量?不确定,但这有效:

for /d %%a in ("c:\Documents and Settings\*.*") do (
    mkdir "%%a\Application Data\vlc"
    echo qt-privacy-ask=0 > "%%a\Application Data\vlc\vlcrc" 
)

相关内容