如何处理嵌入式" (86)"在PATH中使用参数扩展

时间:2014-05-13 19:27:58

标签: batch-file cmd escaping

给出C:\local\bin;C:\Program Files (x86)\foo\bin;的路径

使用parameter expansion时,如何逃避或以其他方式处理嵌入式(x86)

这就是我现在所拥有的(如果指定的.exe目前不在PATH中,最终目的是将路径扩展到已知位置):

for %%g in (touch.exe rsync.exe) do (
  if "%%~dp$PATH:g" =="" set PATH=%PATH%;%~dp0\bin
  )

和当前结果(当然PATH没有改变):

\foo\bin\ was unexpected at this time

1 个答案:

答案 0 :(得分:1)

如果它是一个命令行程序,你可以运行以获得帮助屏幕等,那么这是一个选项:如果找不到该文件,它将把文件夹添加到路径。

name.exe /? >nul 2>&1 
if %errorlevel% equ 9009 set path=%path%;c:\files\bin