【问题标题】:Check a program existence in PATH检查 PATH 中是否存在程序
【发布时间】:2019-08-10 00:37:51
【问题描述】:

我正在运行批处理脚本(通常来自 Visual Studio)并想通过PATH 检查是否有某些程序可用,如果没有,则显示一条消息。简单的文件检查,如

if exist mingw32-make (echo "exists") else (echo "not exists")

不工作 - shell 总是认为应用程序不存在(可能是因为它没有查看 PATH)。
如何正确清洁?

【问题讨论】:

  • 欢迎来到 SO。 SO 不是免费的脚本编写服务。请编辑您的问题并包含您尝试过的代码,描述它的作用,并描述它应该做什么。包括代码产生的任何错误消息。另见WHERE /?
  • 所以我不能问cmd 批处理语言(我看到关于 bash 的相同问题)或者你的意思是另一个?
  • cmd.exe shell 将在运行时尝试通过 PATH 解析可执行文件。 IF EXIST 不能通过 PATH 解析。你调查过WHERE /?吗?
  • @TrolltheLegacy,当然你可以问一个关于cmd的主题问题(见How to Ask)...

标签: windows cmd environment-variables file-exists


【解决方案1】:

where 检查给定文件是否存在于路径中(或当前工作文件夹%cd%)并给出完整路径或错误消息。两者都不需要 - 只是错误级别:

where mingw32-make >nul 2>&1
if errorlevel 1 (echo "not exists") else (echo "exists")

或作为捷径:

where /q mingw32-make && echo found || echo not found

【讨论】:

    猜你喜欢
    • 2011-01-07
    • 2016-06-18
    • 2011-02-12
    • 2011-02-06
    • 2012-01-17
    • 1970-01-01
    • 2011-08-02
    • 1970-01-01
    相关资源
    最近更新 更多