批處理代碼遇到路徑中間有空格怎么辦?


 

案例1:綠化K-Meleon程序

 

本機有環境變量:%appdata%,此變量值中有空格,形如C:/Documents and Settings/Administrator/Application Data,

編寫批處理時需要引用此變量,比如md %appdata%/K-Meleon,問題來了,系統報錯 “子目錄或文件C:/Documents 已經存在。處理:C:/Documents 時出錯”。解決辦法是增加引號即可:形如 “%appdata%/K-Meleon”或者 “%appdata%”/K-Meleon。

@echo off  
md "%appdata%/K-Meleon"  
copy profiles.ini  "%appdata%/K-Meleon"  
pause  

  

 

案例2:設置編譯Java程序的處理 引自 http://hi.baidu.com/wjsblog/blog/item/30f19543909cac1472f05d27.html

 

本機環境變量的設置:java_home = C:/Program Files/Java/jdk1.5.0_09

*.bat中的命令格式:

%java_home%/bin/java 或者 C:/Program Files/Java/jdk1.5.0_09/bin/java

批處理文件中有以上這一行語句,要調用jdk下的java.exe ,但是我的jdk安裝目錄帶空格的,運行這個.bat發現提示錯誤: “c:/Program” 不是內部或外部命令,檢查了下,發現路徑沒有填寫錯誤因此本人推斷DOS中可能無法識別路徑中有空格的情況,因此就google了一把還發現真的是這樣,不過期間也在別人的機器上試了一把,卻發現可以跑,巧合的是他安裝的jdk路徑和我的機器是一樣的呀,難道是本人的RP問題嗎?答案肯定是NO,檢查了下他的環境變量的設置是:java_home = C:/PROGRA~1/Java/jdk1.5.0_14, 而我的設置是直接填真實的路徑:java_home = C:/Program Files/Java/jdk1.5.0_09 區別就在這個“PROGRA~1”和帶空格的真實路徑“Program Files”之間了,環境變量可以用特殊的字符代替從而達到替換空格方便使用的目的,當然大家手工設置一般不會這樣子去搞,都是直接拷貝路徑,這也沒有關系,對帶空格的路徑在bat代碼中用雙引號"" 給它引起來就OK了,改寫成這樣就OK了:

"%java_home%"/bin/java 或者 "C:/Program Files"/Java/jdk1.5.0_09/bin/java

綜上所述:解決空格問題一共有兩種辦法,一個是想辦法在環境變量設置的時候用特殊字符給他替換掉,另外一個就是在寫代碼的時候 用雙引號給有空格的路徑給它引起來就OK了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM