我需要做相同的
set ENVAR=`some-command`
在windows / cmd.exe脚本中。 Cygwin不是一个选择。
对于奖励标记:一般来说是否有一些cmd.exe相当于反引号?
答案 0 :(得分:7)
快速而肮脏的方法是将其重定向到文件,然后阅读它,例如
some-command>out.txt
set /p ENVAR=<out.txt
我认为for
也可以帮到你,但我不记得确切的语法。尝试像
for /f "usebackq" %x in (`some-command`) do set ENVAR=%x
我可能忘记了选项中的一些token
或delim
...
答案 1 :(得分:1)
不是&#34;可能&#34;,绝对必须指定&#34; delims =&#34;作为最后一个标记(表示没有分隔符),除非您希望变量只包含输入数据的第一个空格。
即
FOR /F "usebackq delims=" %%a IN (`cygpath.exe -u "%~1"`) DO (
SET CMDNAME=%%~a
SHIFT
)