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

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

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

Windows中的等价物是什么?

最佳答案 你可以使用非常相似的东西

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

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

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

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

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

点赞