2016-03-05 16 views
-2

前幾天我發現我的批處理腳本中的一些命令停止工作,因爲文件路徑無法解析。Cmd在調用其路徑中帶括號的批處理文件時顯示「...意外此時」響應

E.g.對於命令

D:\Work\build>call "C:\Program Files\Adobe\Adobe Flash Builder 4.7 
(64 Bit)\eclipse\plugins\com.adobe.flash.compiler_4.7.0.349722\AIRSDK\bin\acompc" 
-source-path flash/src/ -include-classes "com.domain.SomeClass" 
-swf-version=20 -output SomeClass.swc 

我得到的迴應

\eclipse\plugins\com.adobe.flash.compiler_4.7.0.349722\AIRSDK\bin\..) was unexpected at this time. 

附:改變了示例文本,以避免任何關於正斜槓和反斜槓的更多討論;)

此外,在這裏,您以同樣的電話捕獲JPG格式:JPG

我假定原因在文件路徑中包含在一起的括號和空格中。不幸的是,既沒有用^符號來逃避它們,也沒有用額外的單一字符串來覆蓋整個字符串'並沒有幫助。

+0

你有斜線!在您的代碼中,並在您的示例輸出中反斜槓,並且實際路徑與「bin \ ..」中顯示的路徑不同。很難知道你在做什麼。 – foxidrive

+0

@foxidrive其實,我只是進行表示的調用,並獲得代表的結果。在「實際路徑與顯示的路徑不一樣」的意思是什麼?所有的路徑都是正確的,並且自從我最後一次使用這個批處理腳本以來一直沒有改變。 –

+0

正如你所看到的'bin \ ..'不在你的代碼中,但它在你的示例屏幕輸出中。 – foxidrive

回答

0

感謝@ConnorsFan我找出了原因。這個問題出現在acompc.bat的一個批處理文件中。他們都使用~dp0 param設置一些變量並進一步調用。

所以,在compc.bat有一個字符串

if "x%AIR_SDK_HOME%"=="x" (set AIR_SDK_HOME=%~dp0..) else echo Using AIR SDK: %AIR_SDK_HOME% 

沒關係AIR_SDK_HOME變量已設置已經或沒有,你會同時調用該批次含有括號中的文件夾中得到了同樣的問題在它的路徑(Adobe Flash Builder 4.7 (64 Bit)在我的情況)。

因爲這是不可能解決從我自己的批處理文件的問題,我必須覆蓋整個分配用雙引號:

if "x%AIR_SDK_HOME%"=="x" (set "AIR_SDK_HOME=%~dp0..") else echo Using AIR SDK: %AIR_SDK_HOME% 

這做的工作)

+0

這意味着,在最後一行中,我是正確的:導致問題的命令(本例中爲'set')被放置在批處理.bat文件_and_放置在「if」或「for」命令中!對? – Aacini

+0

絕對如此。這就是爲什麼我對你的評論投了贊成票。 –

相關問題