作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
批处理脚本非常新。我需要将命令的输出分配给变量。我了解了 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/
我是一名优秀的程序员,十分优秀!