概要
任意のコマンドのインストール状況を確認するバッチファイルのサンプルです。
インストール済みならバージョン情報を表示。
存在しないコマンドは「NOT INSTALLED」を表示します。
実行結果
実行結果です。
コマンドのjava mvn quasar npm awsが入っています。
コマンドのnot_found(架空のコマンド)が入っていません。
注意:コード表示の問題で制御文字が消えてしまうため文字の色を変えたい人は色を変えたい人へ。を確認してください。
@echo off
setlocal enabledelayedexpansion
echo [94m----------------------------[0m
echo [94mVerify command installation.[0m
echo [94m----------------------------[0m
REM 確認するコマンドのリスト
set "commands=java mvn quasar npm aws not_found"
REM 各コマンドのバージョン情報を取得するためのオプション
set "version_options=java:-version mvn:-v quasar:--version npm:-v aws:--version not_found:--version"
REM 確認するコマンドが存在するかをチェック
for %%i in (%commands%) do (
set "version_option="
for %%v in (%version_options%) do (
for /f "tokens=1,2 delims=:" %%a in ("%%v") do (
if "%%a"=="%%i" set "version_option=%%b"
)
)
where "%%i" >nul 2>&1
if not errorlevel 1 (
echo [32mINSTALLED %%i[0m
set "version_info="
for /f "delims=" %%x in ('%%i !version_option! 2^>^&1') do (
if "!version_info!"=="" (
echo %%x
) else (
echo %%x
)
)
) else (
echo [91m[1m[7mNOT INSTALLED %%i[0m
)
)
cmd /k echo end file.
他のコマンドの追加方法
commandsに調べたいコマンドを追加します。
version_optionsに調べたいコマンドのVersionチェックオプションを追加します。
例えばこの例だとjavaはjava -version、mvnはmvn -vが実行されます。
REM 確認するコマンドのリスト
set "commands=java mvn quasar npm aws not_found"
REM 各コマンドのバージョン情報を取得するためのオプション
set "version_options=java:-version mvn:-v quasar:--version npm:-v aws:--version not_found:--version"
色を変えたい人へ。
このコードは文字の色を青色にして---を出力、文字の色を白に戻す処理です。
本当は[94mの前にEscコード(\x1b)が入っていますがコード表示の仕様でEscコードが消えてしまいます。
echo [94m----------------------------[0m
本当はこんな感じで [94m の前にEscコード(\x1b)がいる。
Gitにも置いてあるのでここから取るか、サクラエディタか何かの正規表現で置き換えてください。
サクラエディタでの変更は以下参照。