2017-03-07 41 views
0

我正在嘗試爲Nuke通過評估環境變量將路徑放在一起來創建一個簡單的應用程序啓動器。變量的值有兩種使用方式。首先它是按原樣使用的。第二次我需要分解變量並使用前半部分。解析Windows BAT腳本中的環境變量

的環境變量對系統設置:

NUKE_VERSION = 10.0v5

到應用程序的路徑:

C:\Program Files\Nuke10.0v5\Nuke10.0.exe

下面的代碼工作正常,在命令提示符:

FOR /F "delims=v tokens=1" %i IN ("%NUKE_VERSION%") DO set NUKE_MAJOR=%i 
"C:\Program Files\Nuke%NUKE_VERSION%\Nuke%NUKE_MAJOR%.exe" 

但當我用代碼運行.bat時,它會返回這個錯誤:

NUKE_VERSIONi was unexpected at this time.

對發生了什麼有什麼見解?我可以在python中做這個,但是我不應該這麼簡單,對吧?提前謝謝了。

+0

什麼是您的bat文件是什麼樣子?當你運行一個bat文件時,它通常會啓動它自己的命令環境,它可能或者可能沒有事先聲明的變量,所以,有幾個因素可能導致這個錯誤 –

+2

在一個批處理文件中,可更換參數必須加倍。用'%% i'更改所有'%i' – Aacini

+0

如果您閱讀FOR命令的幫助,第e行說:**要在批處理程序中使用FOR命令,請指定%%變量,而不是%變量。** – Squashman

回答

0

在CMD窗口中,FOR-LOOP使用單個%符號,如您在問題中列出的那樣。

在批處理文件中,FOR-LOOP使用雙%%符號。

FOR/F 「delims = V令牌= 1」 %%我( 「%NUKE_VERSION%」)DO設置NUKE_MAJOR = %%我