要检查命令在bash shell中是否可用,我通常会这样做:
command -v $COMMAND >/dev/null 2>&1 || {
echo >&2 "Error: this script requires the command '$COMMAND' to be available"
exit 1
}
Windows中的等效内容是什么?
答案 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关于批量“单行”,没有指定扩展名(但实际上在指定扩展名时失败)