要检查命令在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,没有指定扩展名(但实际上在指定扩展名时失败)