iT邦幫忙

0

批次檔中的路徑處理

  • 分享至 

  • xImage
  •  

1.中文路徑

中文路徑會出現亂碼無法使用,原因是windows的預設的中文編碼為Big5 (ANSI),而記事本儲存時編碼通常為UTF-8,改變編碼方式即可解決

2.路徑字串、空格

宣告路徑字串變數有好幾種寫法,每一種在解析時效果都有些微不同,也很難找到到底有什麼差別,總之我測到以下的寫法最通用,也可解決路徑空格的問題

set "projectPath=D:\A18002\FW_ASIC\alpha_sCode_v0102"

3.檢查路徑是否正常

3.1 exist

用if 跟 exist 便可判斷路徑是否可用,細節是取用變數時要用%%夾起來,然後整個路徑也要再用""夾起來

set "projectPath=D:\A18002\FW_ASIC\alpha_sCode_v0102"

if NOT exist "%projectPath%\sCode.uvproj" (
    echo "keil project路徑有誤"
    echo "%projectPath%\sCode.uvproj"
    pause
    goto EXIT
    )

3.2 defined

可以配合 defined來判斷變數是否存在,讓程式更有彈性,例如下面路徑我可以選擇性註解掉,當註解掉時就不會因為檢查路徑的程式而卡住

@REM set "MPPath=D:\fail sample_EN\RAmos\!818release\IS818MPTool_EN_230905A_18"

if defined MPPath (
    if NOT exist "%MPPath%" (
        echo "MPTool 資料夾路徑有誤"
        echo "%MPPath%"
        pause
        goto EXIT
        )
)

4.特殊符號(待研究)

@REM set "MPPath=D:\fail sample_EN\RAmos\!818release\IS818MPTool_EN_230905A_18"

上面的路徑其實是不合法的,因為有驚嘆號!,網路上查到bat處理特殊符號的方式是在前面加上 ^ 符號,但實際測試沒有效果,而且要手動加也不是好解法,待之後真的很需要這個功能再來研究怎麼處理吧。


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言