如何检查Windows shell中是否有命令?

时间:2012-09-15 09:42:12

标签: shell command

要检查命令在bash shell中是否可用,我通常会这样做:

command -v $COMMAND >/dev/null 2>&1 || {
    echo >&2 "Error: this script requires the command '$COMMAND' to be available"
    exit 1
}

Windows中的等效内容是什么?

1 个答案:

答案 0 :(得分:2)

你可以使用非常相似的东西

%command% >nul 2>&1 || (
    echo "Error: command not found"
    exit /b 1
)

当然,这实际上会执行命令,但是如果没有适当的参数,大多数命令都不会执行任何操作。如果您想更加确定,可以使用%command% /? >nul 2&1。这将尝试带来命令的帮助页面,而不执行它

<强>更新 要避免完全执行命令,请考虑where.exe。它与Vista和Windows 7捆绑在一起。对于其他操作系统,您可以下载它。请参阅this post on how to download it

一旦拥有它,您可以使用/Q开关运行它以避免额外输出。返回代码0表示找到命令。我发现的事情是where命令要求您提供扩展名。

另一方面,有一个lengthy discussion here关于批量“单行”,没有指定扩展名(但实际上在指定扩展名时失败)