要检查命令在 bash shell 中是否可用,我通常会这样做:
command -v $COMMAND >/dev/null 2>&1 || {
echo >&2 "Error: this script requires the command '$COMMAND' to be available"
exit 1
}
Run Code Online (Sandbox Code Playgroud)
Windows 中的等价物是什么?
你可以使用非常相似的东西
%command% >nul 2>&1 || (
echo "Error: command not found"
exit /b 1
)
Run Code Online (Sandbox Code Playgroud)
当然,这实际上会执行该命令,但如果没有适当的参数,大多数命令将不会执行任何操作。如果您想更加确定,可以使用%command% /? >nul 2&1. 这将尝试打开命令的帮助页面,而不执行它
更新:
为了避免完全执行该命令,请考虑where.exe. 它与 Vista 和 Windows 7 捆绑在一起。对于其他操作系统,您可以下载它。如何下载请参考这篇文章
一旦你有了它,你可以用/Qswitch 运行它以避免额外的输出。返回代码 0 表示找到命令。我发现该where命令要求您提供扩展名。
另一方面,这里有一个关于批处理“one-liner”的冗长讨论,该批处理“one-liner”可以在没有指定扩展名的情况下工作(但当您指定扩展名时实际上会失败)
| 归档时间: |
|
| 查看次数: |
690 次 |
| 最近记录: |