DOS script 裡含空白路徑的處理
繼上回 DOS script 裡迴圈的神奇語法, 學到了 :
setlocal enabledelayedexpansion
這回又踢到鐵板了,
跟上回幾乎一樣的 script, 不過路徑變長了, 而且裡頭有空白 ... like
set JAVA_HOME=C:\Program Files (x86)\IBM\WebSphere\AppServer\java
一跑迴圈又掛了,
ref windows批处理中对带空格路径的处理 這篇, 一開始沒讀完整, 只看到用短路徑就搞定, 手動在那兒切了半天取到短路徑, 果然就會 work,
再仔細謮了一下, 原來不用這麻人工, 只要用下列指令 :
setlocal enabledelayedexpansion
這回又踢到鐵板了,
跟上回幾乎一樣的 script, 不過路徑變長了, 而且裡頭有空白 ... like
set JAVA_HOME=C:\Program Files (x86)\IBM\WebSphere\AppServer\java
一跑迴圈又掛了,
ref windows批处理中对带空格路径的处理 這篇, 一開始沒讀完整, 只看到用短路徑就搞定, 手動在那兒切了半天取到短路徑, 果然就會 work,
再仔細謮了一下, 原來不用這麻人工, 只要用下列指令 :
set JAVA_HOME=C:\Program Files (x86)\IBM\WebSphere\AppServer\java
rem ----- convert to short name -----
for %%x in ("%JAVA_HOME%") do set JAVA_HOME=%%~sx
就可以把路徑轉換成短路徑 !!
JAVA_HOME=c:\PROGRA~2\IBM\WEBSPH~1\APPSER~1\java
厚, 這 windows 的 script 還真不是普通的麻煩 ~~~
留言