如何告诉 EXIST 也查看 Windows 批处理文件中的路径目录

如何告诉 EXIST 也查看 Windows 批处理文件中的路径目录

我试图在 Windows 上做这个简单的事情但总是失败,我认为原因是它没有在 PATH 变量中查找,我该怎么办?

IF EXIST lessc.cmd (
    lessc --yui-compress bootstrap.less > ../css/bootstrap.min.css
) ELSE (
    echo Error: lessc not found. Install Node.js then: npm install -g less
)

答案1

你的 Windows 版本可能有where.exe

where /q lessc || (
    echo Errrrror.
    goto :eof
)

lessc --yui-compress bootstrap.less > ../css/bootstrap.min.css

操作||员的工作方式与 Linux 类似;它的对立面是&&


对于旧版本:

:havecomm
  set "comm=%~$PATH:1"
  goto :eof

每当您用 调用它时call :havecomm lessc,它将设置%comm%为其完整路径,如果未找到则为空。

如果你不知道确切的扩展名并想检查所有可能性,则可以使用较长的版本:

:havecomm
  set comm=
  if not "%~$PATH:1"=="" (
    set "comm=%~$PATH:1"
  ) else (
    for %%e in (%PATHEXT%) do (
      for %%i in (%1%%e) do (
        if not "%%~$PATH:i"=="" (
          set "comm=%%~$PATH:i"
          goto :eof
  ))))
  goto :eof

相关内容