最近気づいたのです。
バッチファイルはPATHを通すと、使うのも作るのも楽になることを。
何が楽になるなの?
まずWindowsはパスを通すことで、どこでexeやバッチを実行してもファイル名だけで実行できるようになりますよね。
ぼくはずっと、これはコマンドプロンプト上でのことだと思っていました。
しかしこれはコマンドプロンプトだけの話ではないのです。
- コマンドプロンプトやPowerShell上
- ファイル名を指定して実行
- アドレスバー
- バッチファイル上
なぜこれを今まで気づかなかったのか……
準備
適当なフォルダをバッチファイル置き場として作ります。
例えば
C:\work\bat
としましょう。
作ったらこれをPATH通します。
コレで準備完了!
汎用的に使うバッチファイルはここに置いて行きましょう!
直接実行してみる
さっきPATHを通したフォルダに実行したいバッチファイルを入れておきます。
例えば「delTxt.bat」という名前で、中身を
del *.txt
としたとします。
適当にテスト用のフォルダを用意して、拡張子がtxtのものとそうでないもの(jpgとか)を用意します。
ここでアドレスバーをクリック。
そして「delTxt.bat」と入力してEnter!
するとtxtだけ消えましたよね?
つまり外部に置いてあるバッチを実行したとしても、開いているフォルダで実行されるということです。
「これを使えば決められた動作を各フォルダで実行する」
ということが簡単にできるようになります。
バッチの「部品」として使う
この処理、他のバッチファイルでも使えそうだな……
なんて処理ありませんか?
そんなときも外部に用意しておけば楽にできます。
こちらもPATHを通しフォルダに、その処理を書いたバッチファイルを置いておきます。
例えば、「setData.bat」を作り、中身を
REM 変数hogeにtestという文字を入れるよ set hoge=test
とします。
これを別のフォルダで、適当なバッチファイルを作り、こんな感じで実装します。
REM 外部バッチを実行 call setData.bat REM 外部バッチでセットした変数を出力 echo %hoge% pause
これでこのバッチを実行すると、このバッチでは創りだしていないはずのhogeの値が出力それ、「tset」と表示されます。
今回は内容的には意味のない処理ですが、流用可能な処理を外部に出しておけば、色々なバッチを作るときに楽できますよ!
あとがき
楽する為のバッチファイルを作るのを楽できれば、楽が捗りますね!
少しの面倒で、面倒を倒していきましょう!