Windowsバッチファイル

バッチファイルの文字列操作【部分文字列・置換・結合・日付整形のテクニック】

Windowsバッチファイル
記事内に広告が含まれています。

バッチファイルでの文字列操作を解説します。部分文字列の切り出し・置換・結合など実務で非常に使えるテクニックです。

部分文字列の切り出し

%変数:~開始位置,文字数% の書式で部分文字列を取り出せます。

@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
  • 日付文字列を整形してファイル名に使うのが実践的な活用法
  • 次の記事では日付・時刻の操作を詳しく学ぶ

コメント

タイトルとURLをコピーしました