Windows コマンドでバッチファイルのファイル名やファイルパスなどいろいろな属性の取得方法

コマンドでバッチファイルのファイル名やファイルパスなどいろいろな属性の取得方法を紹介する。バッチファイルを実行する場合に、バッチファイルのファイル名を使って処理する場合などに活用することができる。

バッチファイルでカレントパス・ファイル名の取得例

下記のコマンドを保存したバッチファイルを実行する

echo off
REM **********************************
REM カレントパスを取得
REM 作成:2023年4月15日 itmemo123.net
REM **********************************
REM カレントパスを取得(\まで付く)
SET DIR_PATH=%~dp0
SET FILENAME=%~nx0

echo ---------------------------
echo カレントパス表示
echo %DIR_PATH%
echo ---------------------------
echo ファイル名表示
echo %FILENAME%
echo ---------------------------

pause

結果は下記のようになる

Windows コマンドでバッチファイルのファイル名やファイルパスなどいろいろな属性の取得方法
結果は下記のようになる

バッチファイルでカレントパス・ファイル名の取得例の解説

バッチファイルでカレントパス・ファイル名の取得例について、ポイントについて解説する。

SET DIR_PATH=%~dp0

「%~dp0」の部分で、ファイルパスを取得している。この部分を以降で紹介するものに変更するといろいろな取得をすることができる。

SET FILENAME=%~nx0

「%~nx0」の部分で、ファイル名を取得している。

batファイルのオプション構文の種類

下記のコマンドのを指定することで、紹介するものに変更するといろいろな取得をすることができる。

コマンド説明コマンド例出力例
%0オリジナルecho %0“C:\temp\sample123.BAT”
%~0引用句 (“”) を削除echo %~0C:\temp\sample123.BAT
%~f0完全修飾パス名echo %~f0C:\temp\sample123.BAT
%~d0ドライブ文字のみecho %~d0C:
%~p0ディレクトリパス名のみecho %~p0\temp\
%~n0ファイル名のみecho %~n0sample123
%~x0ファイル拡張子のみecho %~x0.BAT
%~s0短い名前echo %~s0C:\temp\SAMPLE~1.BAT
%~a0ファイルの属性echo %~a0–a——–
%~t0ファイルの更新日時echo %~t02023/04/15 14:09
%~z0ファイルサイズ(byte)echo %~z03331

batファイルのオプション構文の種類の組み合わせ例

上記を組み合わせることで、さらに出力の仕方を変えることができる。

コマンド説明コマンド例出力例
%~dp0ドライブ文字とディレクトリパスecho %~dp0C:\temp\
%~nx0ファイル名と拡張子echo %~nx0sample123.BAT
%~fs0完全修飾パスと短い名前echo %~fs0C:\temp\SAMPLE~1.BAT
%~ftza0DIR コマンドの出力行のイメージecho %~ftza0–a——– 2023/04/15 14:09 3331 C:\temp\sample123.BAT

そのほかのオプション構文は、「call /?」を実行してコマンドのヘルプを見てみると良いだろう。

コメント

タイトルとURLをコピーしました