5.関数/サブルーチン (1)バッチファイルの呼び出し 〜体育館の裏に呼び出されました。。。〜 【コマンドプロンプト、バッチファイルを使わなきゃならなくなった人向けのメモ】


goto文ばかり使っていると訳分からなくなるので、バッチファイルを分割する。
その場合、バッチからバッチファイルを呼び出すときにはcall文を使用する。


呼び出すバッチファイルと呼び出されるバッチファイルが同じディレクトリにある場合は、ファイル名だけで
呼び出される。
拡張子は、あってもなくてもいいが、何を呼び出してるかを区別するために拡張子は書いた方がいいだろう。
カレントディレクトリにない場合は、環境変数PATHに設定すれば、ファイル名だけで呼び出される。
PATHにも設置されていない場合は、絶対パスで呼び出す。


拡張子を省略できるのは環境変数PATHEXTに設定されているものである。

D:\MyDoc\work\#blog\コマンドプロンプト\call\familyA>set pathext
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH

実行環境

ディレクトリ構成
D:\MyDoc\work\#blog\コマンドプロンプト\call>tree /F
省略
├─familyA
│      child1.bat
│      child2.CMD
│      parent.bat
│
├─familyB
│      cousin.bat
│
└─familyC
        friend.bat
各バッチの内容
call child1.bat
call child1
call child2.cmd
call child2
call cousin.bat
call D:\MyDoc\work\#blog\コマンドプロンプト\call\familyC\friend.bat
  • child1.bat
@echo 私は子供です。長男です。
  • child2.CMD
@echo 私は子供です。次男です。
  • cousin.bat
@echo 私はいとこです。
  • friend.bat
@echo 私は友達です。
環境変数
Path=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;D:\MyDoc\work\#blog\コマンドプロンプト\call\familyB

実行結果

D:\MyDoc\work\#blog\コマンドプロンプト\call\familyA>parent.bat

D:\MyDoc\work\#blog\コマンドプロンプト\call\familyA>call child1.bat
私は子供です。長男です。

D:\MyDoc\work\#blog\コマンドプロンプト\call\familyA>call child1
私は子供です。長男です。

D:\MyDoc\work\#blog\コマンドプロンプト\call\familyA>call child2.cmd
私は子供です。次男です。

D:\MyDoc\work\#blog\コマンドプロンプト\call\familyA>call child2
私は子供です。次男です。

D:\MyDoc\work\#blog\コマンドプロンプト\call\familyA>call cousin.bat
私はいとこです。

D:\MyDoc\work\#blog\コマンドプロンプト\call\familyA>call D:\MyDoc\work\#blog\コマンドプロンプト\call\familyC\friend.bat
私は友達です。




関連あるかもしれない記事