2010-07-07 132 views
8

環境變量設置爲一個命令的輸出,我需要做的是否有可能在CMD.EXE

set ENVAR=`some-command` 

相當於在Windows/cmd.exe的腳本。 Cygwin不是一個選項。

對於獎勵標誌:是否有一些cmd.exe相當於一般的反引號?

+2

安裝Powershell。 – 2010-07-07 23:39:40

+0

我有一個第三方程序調用cmd.exe與腳本並在腳本完成後檢查原因環境變量。我無法直接使用其他shell。 – 2010-07-08 00:38:52

回答

7

一種快速和骯髒的方式將重定向到一個文件,然後閱讀,例如,

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

我認爲for也可以幫助你,但我不記得確切的語法。嘗試類似

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

我可能忘了在選項一些tokendelim ...

1

不是「可能」,這絕對是一個必須註明「delims =」作爲最後一個記號(手段,沒有分隔符),除非您希望變量只包含輸入數據的第一個空格。

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