2017-05-24 121 views
-1

運行批處理文件時遇到錯誤。它是這樣的,我跑test-setup.cmd通過使用此行調用另一個批處理文件test-env.cmd運行批處理文件時遇到錯誤 - 此時出現意外

test-setup.cmd電話:

call %SCRIPT_HOME%\test-env.cmd 

其中SCRIPT_HOME被設置爲SCRIPT_HOME=%~dp0

test-env.cmd有這樣一行:

if [%TEST_HOME%] == [] set TEST_HOME=D:\Program Files\Test\test-02.2.3.Final 

運行後出現這樣的10消息:

Files\Test\test-02.2.3.Final was unexpected at this time 

請注意,我已經設置了TEST_HOME在系統的環境變量。

請幫忙,謝謝。

+1

我認爲你需要把'd:\ Program Files文件\測試\測試02.2.3.Final'在雙引號,因爲它在它有一個空間 – Andy

+0

謝謝你的答覆,我試過了,但它沒有奏效 - TEST_HOME =「D:\ Program Files \ Test \ test-02.2.3.Final」 我也嘗試用引號括住整行,但它也返回相同的錯誤 「TEST_HOME = D:\ Program Files \ Test \ test-02.2.3.Final」 – mrJDOE3

+1

爲什麼'將SCRIPT_HOME'設置爲'%〜dp0 '? _(在輸入13個字符來取代5時有什麼好處)_。你說'%TEST_HOME%'是在系統環境中設置的,這意味着'[%TEST_HOME%]'不會是空的,因此新路徑不能設置爲新值。根據您提供的信息,我不會確信您的其他腳本都足夠強大,可以爲您提供解決方案。請編輯您的問題,追加兩個批處理文件的完整內容。 – Compo

回答

0

您的if命令的語法不正確。如果%TEST_HOME%它會工作沒有包含任何空格,但因爲它,你必須使用雙引號:

if "%TEST_HOME%" == "" set TEST_HOME=D:\Program Files\Test\test-02.2.3.Final 

你要知道,因爲你只是測試,看看變量是否存在,這將是很多更有效地做到這一點直接:

if not defined TEST_HOME set TEST_HOME=D:\Program Files\Test\test-02.2.3.Final