2016-10-18 37 views
1

我已經設置了一個指向msbuild.exe文件夾的新環境變量。設置路徑後無法運行程序作爲環境變量

C:\temp\Test>echo %DOT_NET4% 

C:\Windows\Microsoft.NET\Framework\v4.0.30319 

現在,如果我開始一個新的CMD,然後運行「msbuild.exe」,程序運行正常,但運行這個簡單的蝙蝠後,該程序不再被發現:

"C:\Program Files\TortoiseSVN\bin\svn.exe" checkout %CHECKOUT% %PATH% 
cd %PATH% 
nuget restore OpenText.sln 
msbuild.exe OpenText.sln 

msbuild未被識別爲內部或外部命令。

在此先感謝第一

+0

@ Sean83是的,我試圖創建一個構建腳本,但它找不到所需的可執行文件。 –

+2

你是否忽略了該批處理文件的關鍵部分?因爲你在那裏使用了環境變量'PATH'(它有一個定義的含義),其方式與這個含義並不相符。但是,我錯過了設置'PATH'的部分。沒有你改變'PATH',我看不出你描述的是如何可能的。 – Joey

回答

0

第一件事,你在哪裏設置的MSBuild路徑? ,要解決您的問題,請檢查您是否按照以下流程操作:

  1. 打開您的系統控制面板,檢查高級系統設置。
  2. 點擊環境變量並編輯路徑
  3. 添加一個分號,後跟msbuild路徑。
  4. 打開新的命令提示符並檢查它是否正常工作。
  5. 請注意,如果您在一個命令提示符下設置了msbuild,它將不能在另一個命令提示符下使用。
  6. 當我看到你的邏輯時,我看到的另一個問題是,你正在嘗試cd到%PATH%這應該避免,你要麼重置環境變量路徑到一個新的路徑,並嘗試cd到它或你會將文件名稱更長的問題,請使用另一個變量。

  7. 在你正在調用的bat中,在根級別添加一個條件,例如,如果msbuild沒有找到,基於%ERRORLEVEL%,請嘗試在批處理級別再次添加msbuild到路徑,以便構建將繼續。

如果您發現它有幫助,請回答我的回答,如果它解決了您的問題,請接受它。

0

在他的評論中,我看到了和喬伊一樣的東西。您使用CD %PATH%是表示問題的紅旗。

PATH是一個重要的環境變量,它包含重要可執行文件所在的文件夾路徑的分隔列表。命令處理器使用該列表來定位在發出外部命令時沒有命令的完整路徑的程序。

如果PATH設置正確,那麼您的命令CD %PATH%無法工作。但我懷疑你有一些將PATH定義到特定文件夾的腳本,可能是nuget所在的位置。在這種情況下,您的CD %PATH%命令可以運行,但現在cmd.exe不知道msbuild.exe的位置。

故事的道德 - 永遠不要爲自己的目的使用PATH。選擇一些未保留的變量名稱。

相關問題