【コマンドライン】ファイルパスからドライブ名やファイル名・拡張子を取得する
説明
引数(%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 | システムファイル |