2013-05-02 67 views
0

有沒有辦法在每次調用之後讓Run或Exec保留環境變量?VBScript運行/執行設置環境一次並重復使用

例如,調用vcvars32,做了很多的路徑配置和什麼:

shell.Run "vcvars32.bat", 0, True

然後我想能夠調用msbuild在這種配置環境:

shell.Run "msbuild.exe example.sln /t:Rebuild /p:Configuration=""Debug|Win32""", 0, True

這可能嗎?

我能找到的唯一選擇是用兩個命令創建一個組合批處理腳本,然後調用它。但是如果我每次都需要調用安裝腳本,那似乎很浪費,如果讓環境設置一次然後再使用它,那將是非常好的。

回答

1

將調用vcvars32.bat和msbuild.exe放在一個批處理文件中。使用CALL來調用vcvars32.bat,它將保留環境。將SLN和其他參數傳遞給批處理文件並使用%1,%2,%3等檢索它們。如果需要,請記住在它們周圍加引號。

它不像一個VBS文件中的所有東西那樣乾淨,但它是最簡單的方法。

+0

謝謝,不知道爲什麼我沒有想到明顯! – 2013-05-13 15:31:52

0

那麼你可以把它作爲一個函數?我不確定這是否會回答你的最終問題,但它會創造出你需要記住的更少的「東西」。 我把vcvars32.bat放在同一個函數中,因爲我不知道你是否需要它們在同一個函數中。

sub 
funcmsbuild 
end sub 

Function funcmsbuild 
shell.Run "vcvars32.bat", 0, True 
shell.Run "msbuild.exe example.sln /t:Rebuild /p:Configuration=""Debug|Win32""", 0, True 
end function 

否則你可以把所有的環境變量放在一個字符串中並調用它?但是這樣會讓你感到困惑,因爲你有很多引用「會是」字符串,並且需要你有三個和四個引號(除非你使用chr(22)i引用)