5

コマンドがbashシェルで使用可能かどうかを確認するために、私は通常次のことを行います。

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

Windowsで同等のものは何ですか?

4

1 に答える 1

3

非常によく似たものを使用できます

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

確かに、これは実際にコマンドを実行しますが、ほとんどのコマンドは適切なパラメーターがないと何もしません。より確実にしたい場合は、を使用できます%command% /? >nul 2&1。これにより、コマンドを実行せずに、コマンドのヘルプページが表示されます。

更新: コマンドを完全に実行しないようにするには、を検討してwhere.exeください。VistaおよびWindows7にバンドルされています。他のOSの場合は、ダウンロードできます。ダウンロード方法については、この投稿を参照してください

取得したら、/Qスイッチを使用して実行し、余分な出力を回避できます。戻りコード0は、コマンドが見つかったことを意味します。私が見つけたのは、whereコマンドで拡張子を指定する必要があるということです。

もう一方の端では、拡張子を指定せずに機能するバッチ「ワンライナー」についてここで長い議論があります(ただし、拡張子を指定すると実際には失敗します)

于 2012-12-03T14:25:07.047 に答える