【bat基礎】ファイル名を取得する様々な方法!簡単に取得可能です

データベース
batファイルでファイル名取得したい人

batファイルでファイル名を取得する方法が分かりません。実行しているファイルやカレントディレクトリにあるファイル名を取得したい!

batファイルファイル名を取得する方法は様々あります。実行しているbatファイル名やカレントディレクトリにあるファイル名取得なども可能です。

今回はその方法を現役エンジニアの筆者が詳しく説明します!

%0やforなどを使用すれば取得可能です。

windowsのプロンプトで使用できるbatやpythonやphpを使用して、業務効率化やWebサイトを作成しております。javaやシェルスクリプトなど、様々なプログラミングを行った実績ありの筆者です。

目次

batでファイル名を取得する様々な方法

ファイル名取得

ファイル名を取得する方法ですが2パターンあります。

batファイルで2パターンのファイル名を取得する
  • 実行しているbatファイル名を取得する
  • カレントディレクトリのファイル名を取得する

このどちらも詳しく説明していきます。

実行しているbatファイル名を取得する簡単な方法

まずは実行しているbatファイル名を取得する方法です。

実行しているファイル名取得する方法は%0を使用します。

@echo off
echo %0
pause

注意点としてbatファイルを実行するパスにより%0に入る値が変化します。

batファイルの実行のやり方
  • batファイルをダブルクリックして実行する場合
  • batファイルが存在するパスまで移動して実行する場合

batファイルをダブルクリックして実行する場合

batファイルをダブルクリックすると、ユーザーのホームディレクトリから実行されるので%0に入るbatファイル名は絶対パスを含みます。

batファイルをダブルクリックした結果

"C:\script\bat\18_ファイル名取得\ファイル名取得.bat"

batファイルが存在するパスまで移動して実行する場合

batファイルのパスまで移動して実行する時は、%0にはbatファイル名のみ取得されます。

C:\script\bat\18_ファイル名取得>ファイル名取得.bat
ファイル名取得.bat

batファイルをダブルクリックしてファイル名のみ取得する方法

batファイルをダブルクリックして実行する人も多いと思います。その時にbatファイル名のみ取得する方法はないのでしょうか?

その時は「%~nx0」を指定すればbatファイル名のみ取得できます。

「%~n0」はファイル名のみ、「%~x0」は識別子のみ、二つ合わせて「%~nx0」で取得できます。 

「%~n0」を使用したbatファイルを実行した結果、ファイル名のみ取得できています。

ファイル名取得.bat

その他にもbatファイルの様々な情報を取得できますので、簡単にまとめておきます。

オプション意味
%~d0バッチファイルのドライブ名
%~p0バッチファイルのパス
%~dp0バッチファイルのドライブ名+パス
%~f0バッチファイル名を含めたパス
%~n0バッチファイル名
%~x0バッチファイルの識別子
%~nx0バッチファイル名(識別子含む)
%~s0バッチファイル名を含めたパス(省略形)
%~a0バッチファイルの属性
%~t0バッチファイルの更新日時
%~z0バッチファイルの容量(バイト)
その他の項目を取得するオプション一覧

上でまとめた詳しい情報は以下の記事にまとめていますので、興味のある人はどうぞ

カレントディレクトリのファイル名を取得する方法

ファイル名取得

カレントディレクトリにあるファイル名を取得したい場合もあるかと思います。

forを使用してファイル名を取得する方法です。

@echo off

for %%i in (*) do echo %%i
pause

for文の(*)はカレントディレクトリのファイル名全てが入ります。

フォルダ構成は以下としてbatファイルを実行してみます。

実行した結果は以下となりました。カレントディレクトリのみにあるファイル名を取得しています。

ファイル名取得.bat
ファイル1.txt
ファイル2.txt
続行するには何かキーを押してください . . .

またカレントディレクトリ配下のサブフォルダも対象にしたい場合は「/r」オプションを使用します。

@echo off

for /r %%i in (*) do echo %%i
pause

これでカレントディレクトリ配下のファイル名も取得できますので実行してみます。

C:\script\bat\18_ファイル名取得\ファイル名取得.bat
C:\script\bat\18_ファイル名取得\ファイル1.txt
C:\script\bat\18_ファイル名取得\ファイル2.txt
C:\script\bat\18_ファイル名取得\sub_dir\sub_file_1.txt
C:\script\bat\18_ファイル名取得\sub_dir\sub_file_2.txt
続行するには何かキーを押してください . . .

ファイル名を取得できました。

forで様々な情報を取得できるので詳しくは以下の記事を参考にしてください。

バッチでファイル名取得が出来る様になった人

batファイルでファイル名取得できるようになったので、バッチファイルで出来る事が多くなりました!

データベース

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次