代码之家  ›  专栏  ›  技术社区  ›  Peter Graham

是否可以将环境变量设置为cmd.exe中命令的输出

  •  8
  • Peter Graham  · 技术社区  · 15 年前

    set ENVAR=`some-command`
    

    在windows/cmd.exe脚本中。Cygwin不是一个选择。

    对于奖励分数:是否有一些cmd.exe在一般情况下等同于backticks?

    2 回复  |  直到 15 年前
        1
  •  8
  •   mhd    15 年前

    一种快速而肮脏的方法是将它重定向到一个文件,然后读取它。

    some-command>out.txt
    set /p ENVAR=<out.txt
    

    我想 for 我也可以帮你,但我不记得确切的语法。试试这样的

    for /f "usebackq" %x in (`some-command`) do set ENVAR=%x
    

    我可能忘了一些 token delim

        2
  •  1
  •   AnrDaemon    10 年前

    不是“可能”,必须将“delims=”指定为最后一个标记(表示没有分隔符),除非您希望变量最多只包含输入数据的第一个空格。

    FOR /F "usebackq delims=" %%a IN (`cygpath.exe -u "%~1"`) DO (
      SET CMDNAME=%%~a
      SHIFT
    )