コマンドでバッチファイルのファイル名やファイルパスなどいろいろな属性の取得方法を紹介する。バッチファイルを実行する場合に、バッチファイルのファイル名を使って処理する場合などに活用することができる。
バッチファイルでカレントパス・ファイル名の取得例
下記のコマンドを保存したバッチファイルを実行する
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
結果は下記のようになる
バッチファイルでカレントパス・ファイル名の取得例の解説
バッチファイルでカレントパス・ファイル名の取得例について、ポイントについて解説する。
SET DIR_PATH=%~dp0
「%~dp0」の部分で、ファイルパスを取得している。この部分を以降で紹介するものに変更するといろいろな取得をすることができる。
SET FILENAME=%~nx0
「%~nx0」の部分で、ファイル名を取得している。
batファイルのオプション構文の種類
下記のコマンドのを指定することで、紹介するものに変更するといろいろな取得をすることができる。
コマンド | 説明 | コマンド例 | 出力例 |
---|---|---|---|
%0 | オリジナル | echo %0 | “C:\temp\sample123.BAT” |
%~0 | 引用句 (“”) を削除 | echo %~0 | C:\temp\sample123.BAT |
%~f0 | 完全修飾パス名 | echo %~f0 | C:\temp\sample123.BAT |
%~d0 | ドライブ文字のみ | echo %~d0 | C: |
%~p0 | ディレクトリパス名のみ | echo %~p0 | \temp\ |
%~n0 | ファイル名のみ | echo %~n0 | sample123 |
%~x0 | ファイル拡張子のみ | echo %~x0 | .BAT |
%~s0 | 短い名前 | echo %~s0 | C:\temp\SAMPLE~1.BAT |
%~a0 | ファイルの属性 | echo %~a0 | –a——– |
%~t0 | ファイルの更新日時 | echo %~t0 | 2023/04/15 14:09 |
%~z0 | ファイルサイズ(byte) | echo %~z0 | 3331 |
batファイルのオプション構文の種類の組み合わせ例
上記を組み合わせることで、さらに出力の仕方を変えることができる。
コマンド | 説明 | コマンド例 | 出力例 |
---|---|---|---|
%~dp0 | ドライブ文字とディレクトリパス | echo %~dp0 | C:\temp\ |
%~nx0 | ファイル名と拡張子 | echo %~nx0 | sample123.BAT |
%~fs0 | 完全修飾パスと短い名前 | echo %~fs0 | C:\temp\SAMPLE~1.BAT |
%~ftza0 | DIR コマンドの出力行のイメージ | echo %~ftza0 | –a——– 2023/04/15 14:09 3331 C:\temp\sample123.BAT |
そのほかのオプション構文は、「call /?」を実行してコマンドのヘルプを見てみると良いだろう。
コメント