なまけもの

備忘録

【コマンドライン】ファイルパスからドライブ名やファイル名・拡張子を取得する

説明

引数(%1 など)やFORで使う変数(%f など)からドライブ名やファイル名を取得する場合は以下を使用する。これをパス演算子という。
FORの変数は、記述のところを"%%~f"のようにして使う。

記述 説明 出力例
%~1 引用符(")を削除 C:\BatSample\Sample.bat
%~f1 完全修飾パス名 C:\BatSample\Sample.bat
%~d1 ドライブ文字 C:
%~p1 パス \BatSample\
%~n1 ファイル名 Sample
%~x1 拡張子(.あり) .bat
%~s1 8.3形式パス C:\BATSAM~1\Sample.bat
%~a1 ファイルの属性 -rahsc---
%~t1 ファイルの更新日 2018/03/28 12:00
%~z1 ファイルサイズ 123
%~%PATH:1 環境変数"PATH"に指定されている場所を探し、同名ファイルがあればパスを表示。無かった場合は空欄 -

修飾子を組み合わせることもできる。

記述 説明
%~dp1 ドライブ名とパス(C:\Sample)
%~nx1 ファイル名と拡張子

ファイルの属性

記述 説明
d ディレクト
r 読み取り専用
a アーカイブ
h 隠しファイル
s システムファイル