バッチの絶対パスの書き方・
パスの通し方2つ
バッチやコマンドで特定のアプリを開きたいとき、「アプリ名.exe」「start アプリ名.exe」などと書くだけで起動できるアプリもあれば、起動できないアプリもあります。
この違いの1つに「PATH」があります。
ここでは、バッチで任意のアプリを開きたい時に覚えておきたい、パスの書き方・パスの通し方を解説しています。
環境変数「PATH」とは
「start アプリ名.exe」でアプリを起動できるのは、アプリのパスが環境変数「PATH」に登録されているためです。
環境変数「PATH」は、コマンドでアプリ起動などをしやすくするために、よく使うアプリのパス(=アプリが存在する場所)を登録しておける仕組みです。
PATHに場所が登録されているアプリは「start アプリ名.exe」のようにアプリ名を指定するだけで、アプリを起動させる事ができます。
逆に、PATHにパスが登録されていないアプリは、この書き方では開く事はできません。
「PATH」でのパスの通し方
ここからは、バッチ初心者の私でも間違わずにできた、環境変数「PATH」にアプリのパスを登録する手順を見ていきます。
まずはパスを通したいアプリを右クリックして「プロパティ」をクリック、「場所:」部分を全て選択してコピーします。
「F3」などで検索窓を呼び出して「環境変数」と入力、「環境変数を編集」が候補に出てくるのでクリックします。
「ユーザー環境変数(U)」にある「PATH」を選択して「編集」ボタンをクリック。
「ユーザー変数の編集」ウィンドウが開くので、「変数値(V)」の欄を選択します。
ここにすでに何か入力されている場合は、最後尾を見て「;」がなければ入力します。※「;」はパスの区切りを表します。
あとは、後ろにさっきコピーしたパスを貼り付け。
末尾に「\」がなければ、忘れずに追記します。
あとは「OK」を押して「ユーザー変数の編集」ウィンドウを閉じて、もう一度「OK」を押して「環境変数」のウィンドウを閉じれば完了です!
バッチ内で一時的に
「PATH」を通す
環境変数を触るのがこわい、という場合は、バッチ内で一時的にPATHを通す事もできます。
コードはこちら。
echo off
set PATH=%PATH%;アプリのパス;
start アプリ.exe
exit /b
「アプリのパス」の部分を、開きたいアプリのパスに置き換えます。
パスを調べたいアプリファイルを右クリックして、「プロパティ」をクリック。
「場所:」部分に表示されているテキストを、全て選択してコピー。
これを上記の「アプリのパス」部分と置き換えて、末尾に「\」がなければ追記します。
この方法の注意点は、バッチファイルの「文字コード(エンコード)」をしっかり「shift-JIS」にすること。
「UTF-8」ではパスのどこかに日本語がある場合、正常に動作しません。
また、この場合はバッチの動作が終了するとPATH設定も消えるので、何度もバッチで使うアプリなら、環境変数でPATHを通しておいたほうが記述が少なくてすみます。
絶対パスで指定する
パスを通すなんてまどろっこしい!
という場合は、アプリを絶対パスで指定する事もできます。
echo off
"C:\アプリのパス\アプリ名.exe"
exit /b
「C:\~\アプリ.exe」の部分には、アプリのフルパス(絶対パス)を記述します。
アプリの絶対パスは、開きたいアプリを右クリックして「プロパティ」を開き、「場所」をコピーして「\アプリ名.exe」などとアプリ名を追記すればOKです。
パスを「""」で囲むことで、パスの中に半角スペースがあっても正常に動作します。
ただ、絶対パスでの指定では「start」が使えないので、「call」での起動のように、呼び出したアプリを終了させるまで次の動作に進みません。
バッチの絶対パスの書き方
パスの通し方・余談
環境変数でパスを通しておくと、何度も同じパスを書く手間を省くことができます。
よく使うアプリなら、環境変数に登録しておくのがおすすめ。
一方、あまり使わない・環境変数にあまりパスを追加したくない場合は、バッチ内で一時的にパスを通すのも有効です。
絶対パスで指定する場合は「start」が使えないので、「start」で起動させたい場合は、環境変数かバッチ内でパスを通すようにしましょう。