バッチファイルで文字列操作
色々と文字加工ができます
文字列操作
書式一覧:変数展開と文字列操作
書式 | 意味 | 例 | 結果 |
---|---|---|---|
%~I | すべての引用符 (" ) を削除して、I を展開します。 | %~I | C:\Path\File.txt |
%~fI | %I を完全修飾パス名に展開します。 | %~fI | C:\Path\File.txt |
%~dI | %I をドライブ文字だけに展開します。 | %~dI | C: |
%~pI | %I をパス名だけに展開します。 | %~pI | \Path\ |
%~nI | %I をファイル名だけに展開します。 | %~nI | File |
%~xI | %I をファイル拡張子だけに展開します。 | %~xI | .txt |
%~sI | 展開されたパスは短い名前 (8.3形式) を含みます。 | %~sI | C:\PROGRA~1\FILE~1 |
%~aI | %I をファイルの属性に展開します。 | %~aI | -a--- |
%~tI | %I ファイルの日付/時刻に展開します。 | %~tI | 2024/12/03 12:00 |
%~zI | %I ファイルのサイズをバイト単位で展開します。 | %~zI | 1024 |
%~$PATH:I | PATH 環境変数を検索し、最初に見つかった %I を完全修飾名に展開します。 | %~$PATH:I | C:\Windows\notepad.exe |
書式 | 意味 | 例 | 結果 |
---|---|---|---|
%S% | 文字列S の値全体を展開します。 | %S% | ABCDEFGHIJ |
%S:~x% | (x+1) 文字目から末尾まで切り出します。 | %S:~3% | DEFGHIJ |
%S:~x,y% | (x+1) 文字目からy 文字分を切り出します。 | %S:~3,3% | DEF |
%S:~x,-y% | (x+1) 文字目から末尾までのうち、最後のy 文字を消去します。 | %S:~3,-3% | DEFG |
%S:~-x% | 後ろからx 文字目をスタートにして、末尾まで切り出します。 | %S:~-4% | GHIJ |
%S:~-x,y% | 後ろからx 文字目をスタートにして、y 文字分切り出します。 | %S:~-4,3% | GHI |
%S:~-x,-y% | 後ろからx 文字目をスタートにして、最後のy 文字を消去します。 | %S:~-4,-3% | G |
詳細な説明
1. ファイル展開の修飾子
%~
を使用することで、特定のファイル情報を簡単に取得できます。
例1: ファイル情報の展開
for %%I in ("C:\Example\Document.txt") do (
echo ドライブ: %%~dI
echo パス: %%~pI
echo ファイル名: %%~nI
echo 拡張子: %%~xI
echo サイズ: %%~zI
echo 属性: %%~aI
)
結果:
ドライブ: C:
パス: \Example\
ファイル名: Document
拡張子: .txt
サイズ: 2048
属性: -a---
2. 文字列操作の修飾子
%S:~x,y%
を使用して、文字列の切り出しや特定部分の取得が可能です。
例2: 部分文字列の切り出し
set S=WindowsBatchScript
echo %S:~8% REM 9文字目から末尾まで
echo %S:~8,5% REM 9文字目から5文字分
echo %S:~-6% REM 後ろから6文字目から末尾まで
echo %S:~-6,4% REM 後ろから6文字目から4文字分
結果:
BatchScript
Batch
Script
Scri
3. PATH 検索
%~$PATH:I
を使用して、PATH 環境変数から指定したファイルを検索します。
例3: PATH内のプログラム検索
for %%I in (notepad.exe) do (
echo PATH で見つかったプログラム: %%~$PATH:I
)
結果:
PATH で見つかったプログラム: C:\Windows\System32\notepad.exe
4. 文字列の置換と切り出しの組み合わせ
%変数名:検索文字列=置換文字列%
で文字列を置換し、さらに切り出します。
例4: 置換と部分文字列
set S=HelloWorld
set S=%S:World=Batch%
echo %S:~5% REM 6文字目から末尾まで
結果:
Batch
ディスカッション
コメント一覧
まだ、コメントがありません