gpt4 book ai didi

windows - 批处理脚本 - 在命令和 usebackq 中使用带有空格的 FOR/F

转载 作者:行者123 更新时间:2023-12-03 11:07:33 25 4
gpt4 key购买 nike

批处理脚本非常新。我需要将命令的输出分配给变量。我了解了 FOR/F 命令。我的命令有空格和双引号。所以我尝试使用 usebackq 选项。但它因空间错误而失败。

for /F "usebackq delims=" %%G IN (`"C:\Program Files (x86)\ABC\DEF\XYZ.exe" Get /a "P1=D2" /b "Q1=D3" /c "D5"`) DO (
SET var=%%G
)

ECHO %var%

pause
失败:
'C:\Program' is not recognized as an internal or external command,
operable program or batch file.
根据 StackOverflow 上的其他问题,我做的一切都是正确的 - usebackq 反勾的用法, demlims= 忽略空格作为分隔符。我不确定为什么它仍然失败。任何帮助表示赞赏!

最佳答案

由于程序名称后面的参数周围有额外的引号,发布的行失败。一种解决方法是将整个命令行嵌入到另一对外部引号中(并将保留字符,如 () 转义为 ^(^),因为它们现在位于引号字符串之外)。

for /F "usebackq delims=" %%G IN (`""C:\Program Files ^(x86^)\ABC\DEF\XYZ.exe" Get /a "P1=D2" /b "Q1=D3" /c "D5""`) do (...)
如评论中所述, usebackq在这种情况下实际上并不需要,如果使用正则引号,则相同的语法将起作用。

关于windows - 批处理脚本 - 在命令和 usebackq 中使用带有空格的 FOR/F,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62972917/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com