バッチファイルを誤って起動しないようにするおまじない


本番環境でバッチファイルをついうっかりダブルクリックやEnterで誤って起動してしまい真っ青になる経験は誰しもがあるのではないでしょうか?(あるよね?)

誤って起動しても事なきを得るためのおまじない(コード)がこちらです。

:: コマンドライン引数に1を渡していないと終了する
if "%1" neq "1" (
    exit /b
)

ダブルクリックではコマンドライン引数が渡されないので、
これを処理の頭に書いておくと次処理に行かず終了してくれます。

引数と比較する値は別に1じゃなくてもなんでもよいです。

ちゃんと実行したいときはこのように引数を渡して実行します。
>hoge.bat 1

他のバッチファイルやプログラムから実行するのではなく、人が実行するのならchoiceコマンドを使うのもアリです。

choice /c YN /M "実行しますか?"
if %ERRORLEVEL% equ 1 goto exec
exit /b

:exec
~処理~

choiceコマンドはyかnの入力をメッセージ付きで促せるコマンドです。
yを押すとERRORLEVEL変数に1が入るので上記のような記述が可能です。

>choice /c YN /M "実行しますか?"
実行しますか? [Y,N]?Y

>echo %ERRORLEVEL%
1

>choice /c YN /M "実行しますか?"
実行しますか? [Y,N]?N

>echo %ERRORLEVEL%
2

ご安全に!