理解を深める!バッチで
アプリを起動させるコード解説
ここでは、自分用の備忘録も兼ねて、以前紹介した 「バッチファイルから任意のアプリを起動させる」コードの簡単な解説をしています。
あくまで初心者の備忘録ですが、コピペから一歩理解を深めたい時に、お役に立てばと思います。
バッチでアプリを起動させる
コマンド内容
今回扱う、バッチでアプリを起動させるコードはこちらです。
echo off
start アプリ名.exe
exit /b
コードの内容をごく簡潔にまとめると!
「echo off」おまじない。「start」アプリの呼び出し。「exit /b」コマンド終了オプションつき。
これだけだと意味が分かりませんが、一度内容が分かると思い出しやすくなるかと思います。
詳しく見ていきましょう!
バッチコマンド
「echo off」の意味
「echo off」は、簡単に言うとコマンドにバッチの内容が記述されないようにする指定です。
これを書かない場合は、コマンド上にバッチの内容+出力結果が表示されます。
簡単なコマンドでは気にならないかも知れませんが、複雑なコードを書く場合には「出力結果だけ」表示された方が便利なため、バッチを作る時は先頭に書くのがお約束のようになっています。
バッチコマンド
「start」の意味
「start」は簡単に言うと、指定のアプリを呼び出すコマンドです。「start」のほかにも「call」で起動させる事もできますが、「call」は起動させたアプリが終了するまで次の動作に進まない、という特徴があります。
複数のアプリを同時に開いておきたい、という場合には「start」が適しているので、必要に応じて使い分けると便利です。
ちなみに、絶対パスでアプリを開いた場合は「call」と同じく、起動させたアプリが終了するまで次の動作に進みません。
バッチコマンド
「exit /b」の意味
「exit」はコマンドを終了させる指定です。「call」コマンドなどで呼び出された他のバッチやサブルーチン(「call」などで呼び出せる、ひとまとまりのプログラム)で「exit」コマンドが実行されると、呼び出し元のメインプログラムへ戻ります。
ここにオプション「/b」をつけると、変数「errorlevel」に戻り値を代入できます。
コマンドが正常に動作して終了した場合は「errorlevel」には「0」が代入されますが、エラーがあった場合は「1」、存在しないコマンドなどでは「9009」の値が自動で代入されます。
ただ終了するだけならオプションなしでもよさそうですが、「errorlevel」を見ることでエラーがあった時の原因の手がかりになります。
また「exit /b 3」といった記述式で「errorlevel」に任意の数値を代入できます。この例だと「errorlevel」には「3」が代入されています。
こちらは条件分岐など複雑なコードを作る時に便利な仕組みです。
バッチでアプリを起動させる
コード解説・余談
実際にバッチファイルから任意のアプリを「start アプリ名.exe」といった記述で起動させるには、アプリのパスを通す必要があります。
バッチファイルから任意のアプリを起動する手順は、こちらの記事でまとめているので、「パスの通し方って?」という時は、良ければ一読してみてくださいね。