バッチファイルでの文字列操作を解説します。部分文字列の切り出し・置換・結合など実務で非常に使えるテクニックです。
部分文字列の切り出し
%変数:~開始位置,文字数% の書式で部分文字列を取り出せます。
@echo off
set STR=Hello, World!
echo %STR:~0,5% :: Hello
echo %STR:~7% :: World!
echo %STR:~-6% :: orld!
echo %STR:~0,-1% :: Hello, World文字列の置換
@echo off
set STR=Hello, World!
:: %変数:旧文字列=新文字列%
echo %STR:World=Batch% :: Hello, Batch!日付をファイル名用に整形する
@echo off
set YYYY=%DATE:~0,4%
set MM=%DATE:~5,2%
set DD=%DATE:~8,2%
set YYYYMMDD=%YYYY%%MM%%DD%
set BACKUP_FILE=backup_%YYYYMMDD%.zip
echo バックアップファイル名: %BACKUP_FILE%文字列長を調べる(forを使った方法)
@echo off
set STR=Hello
set LEN=0
set TMP=%STR%
:len_loop
if not "%TMP%"=="" (
set TMP=%TMP:~1%
set /a LEN+=1
goto len_loop
)
echo 文字列長: %LEN%文字列操作まとめ表
| 操作 | 書き方 | 例 |
|---|---|---|
| 部分文字列(先頭から) | %VAR:~0,N% | %STR:~0,3% → Hel |
| 部分文字列(末尾から) | %VAR:~-N% | %STR:~-3% → lo! |
| 文字列置換 | %VAR:旧=新% | %STR:o=0% → Hell0! |
| 文字列削除 | %VAR:文字=% | %STR:l=% → Heo! |
まとめ
- %変数:~開始,文字数% で部分文字列を切り出せる
- %変数:旧=新% で文字列内の置換ができる
- 変数の結合はそのまま並べて書けばOK
- 日付文字列を整形してファイル名に使うのが実践的な活用法
- 次の記事では日付・時刻の操作を詳しく学ぶ


コメント