ちわー、ブレインキャットです。
今回は「絶対パス」「相対パス」について勉強していこうと思います。
で、パス指定して別の階層にあるバッチファイルでも実行してみようと思います。
絶対パスって?
絶対パス、フルパスとも言います。
起点となるディレクトリから目的地までのパスです。
よくわからないかもしれませんが、これからバッチファイルの中に書いていくパス見てもらえばなんとなく分かります!
では、バッチファイルを2つ(「main.bat」「sub.bat」)作り、 「sub.bat」 を 「main.bat」 と別の階層に置いて、 絶対パスで「sub.bat」を指定してみましょう!
まず、「main.bat」 と 「sub.bat」 を以下のフォルダに置いてみます。
「main.bat」:D:\bat\4
「sub.bat」:D:\bat\4\sub
「main.bat」 の中に絶対パスを書いてみます。
1 2 3 | @echo off call D:\bat\4\sub\sub.bat |
call の後に「D:\bat\4\sub\sub.bat」でパスを指定しています。
ちなみに、 「sub.bat」 の中はこんな感じで書いてあります。
1 2 3 4 5 | @echo off echo ブレインキャット pause |
では実行してみよう!
ちゃんと出ました!
じゃあ次!
相対パスって?
相対パスは今いるとこから、目的地までのパスです。
今回で言えば、
「main.bat」:D:\bat\4
「sub.bat」:D:\bat\4\sub
にいるので、「D:\bat\4」から「D:\bat\4\sub」までのパスです。
そのあたりを踏まえて「main.bat」の中身を書いてみましょう!
1 2 3 | @echo off call sub\sub.bat |
こんな感じで書きました。
「sub.bat」 は書き変えていません。
では改めて実行!
ってわけで動きました。
簡単でしたね。
では次に呼び指し先のファイルが呼び出しもとより浅い階層に居たらどう指定するか覚えておきましょう!
..\
一段階浅い階層に進むには「..\」を使います。
例えば下のような階層にファイルを置いてみます。
「main.bat」:D:\bat\4
「sub.bat」:D:\bat
「main.bat」 をこんな感じで書き換えるわけです。
1 2 3 | @echo off call ..\sub.bat |
そして実行!
てわけでうまくでました!
終わり!