bat調用全路徑包含空格的exe程序

點擊網頁按鈕事件,獲取相應參數並傳遞給本地待調用的exe程序,咱們採用的方式是在註冊表中定義本身的協議,該自定義協議指明須要調用的應用程序,但因爲參數要傳遞多個,無法直接調用,因而咱們又寫了一個bat文件,在註冊表中指明要調用的bat,在bat中處理參數並調用相應的exe,碰到的第一個問題就是上篇小結中提到的bat調用相對路徑時,應用程序上方圖標不顯示的問題,後來加了全路徑好了,但若是全路徑包含空格,bat處理又有問題,咱們的處理方式是:html

    set toolPathTemp="%~dp0" ::當前路徑加上"",不加""bat直接退出了
    set toolPath=!toolPathTemp:"=! ::去除多餘的引號,toolPathTemp有兩個雙引號,用!!引用變量須要在加上setlocal\ide

enabledelayedexpansionurl


    start /d "toolPath" "" "toolPath/xx.exe" !1! !2! ::/d指明exe所在全路徑,後面的""是爲了讓path中可包含空格,參考http://www.cnblogs.com/qq78292959/p/3524095.html
code


    另:傳遞的參數可能包含中文,但到bat中會亂碼,全部咱們又寫了一個轉utf-8應用程序返回中文,但在bat中須要獲得應用程序的結果,不是很好處理,請參考http://zhidao.baidu.com/link?url=q10bC75zSEavvxpJ3RGdwAzw5Y0rfDCpskI92yv4jJ4TUU9ujAZLXEoMWiovwuqrnhg391m2SGQ-OxkA3MY8C_,咱們的處理方式相同,只不過exe路徑中包含變量,以下:htm

for /f "" %%i in ('"!toolPath!encode.exe" !name!') do (blog

    set name=%%i
事件

)
utf-8

相關文章
相關標籤/搜索