分かりやすく、使いやすく。

実行中のバッチファイルのファイル名を取得する方法

スポンサーリンク

実行中のバッチファイル(*.bat)の名前を取得するには %~nx0 を使用します。拡張子を除いたファイル名を取得したい場合は %~n0 を使用します。

test1.bat で実行した場合の例は次の通りです。

test1.bat
1
2
3
4
5
6
7
8
9
10
11
12
13
@ECHO OFF
 
ECHO test1.bat開始
 
REM 呼び出したバッチファイルのあるフォルダのパスを表示
ECHO 拡張子あり→%~nx0
ECHO 拡張しなし→%~n0
 
REM
ECHO test1.bat開始
 
REM ダブルクリックで実行した際に表示内容を確認できるようにPAUSEする
PAUSE 
test1.bat開始
拡張子あり→test1.bat
拡張しなし→test1
test1.bat開始 

ちなみに実行中に他のバッチファイルを呼び出した場合、呼び出されたバッチファイルで %~nx0 や %~n0 を使用すると、呼び出された側(実行中)のバッチファイル名前を表示します。

次の例では、test2.bat から test1.bat というバッチファイルを呼び出して実行した場合のサンプルコードです。

test1.bat(呼び出される側)
1
2
3
4
5
6
7
8
9
10
@ECHO OFF
 
ECHO test1.bat開始
 
REM 呼び出したバッチファイルのあるフォルダのパスを表示
ECHO 拡張子あり→%~nx0
ECHO 拡張しなし→%~n0
 
REM
ECHO test1.bat開始 
test2.bat(呼び出す側)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@ECHO OFF
 
ECHO test2.bat開始
 
REM 実行中のバッチファイルのあるフォルダのパスを表示
ECHO 拡張子あり→%~nx0
ECHO 拡張しなし→%~n0
 
REM  test1.batを実行
CALL test1.bat
 
ECHO test2.bat終了
 
REM ダブルクリックで実行した際に表示内容を確認できるようにPAUSEする
PAUSE 
test2.bat開始
拡張子あり→test2.bat
拡張しなし→test2
test1.bat開始
拡張子あり→test1.bat
拡張しなし→test1
test1.bat開始
test2.bat終了 
スポンサーリンク
スポンサーリンク