首页 > 代码库 > bat调用全路径包含空格的exe程序
bat调用全路径包含空格的exe程序
点击网页按钮事件,获取相应参数并传递给本地待调用的exe程序,我们采用的方式是在注册表中定义自己的协议,该自定义协议指明需要调用的应用程序,但由于参数要传递多个,没法直接调用,于是我们又写了一个bat文件,在注册表中指明要调用的bat,在bat中处理参数并调用相应的exe,碰到的第一个问题就是上篇小结中提到的bat调用相对路径时,应用程序上方图标不显示的问题,后来加了全路径好了,但如果全路径包含空格,bat处理又有问题,我们的处理方式是:
set toolPathTemp="%~dp0" ::当前路径加上"",不加""bat直接退出了
set toolPath=!toolPathTemp:"=! ::去除空格,用!!引用变量需要在加上setlocal\
enabledelayedexpansion
start /d "path" "" "path+exe" !1! !2! ::/d指明exe所在全路径,后面的""是为了让path中可包含空格,参考http://www.cnblogs.com/qq78292959/p/3524095.html
另:传递的参数可能包含中文,但到bat中会乱码,所有我们又写了一个转utf-8应用程序返回中文,但在bat中需要得到应用程序的结果,不是很好处理,请参考http://zhidao.baidu.com/link?url=q10bC75zSEavvxpJ3RGdwAzw5Y0rfDCpskI92yv4jJ4TUU9ujAZLXEoMWiovwuqrnhg391m2SGQ-OxkA3MY8C_,我们的处理方式相同,只不过exe路径中包含变量,如下:
for /f "" %%i in (‘"!toolPath!encode.exe" !name!‘) do (
set name=%%i
)
bat调用全路径包含空格的exe程序