バッチファイル文字列の分割、結合、切り出し(SplitやSubstring的な処理)

バッチファイル

本記事では、バッチファイルの環境変数に格納された文字列の分割、結合、切り出し方法のサンプルを紹介します。(特にfor文はbat特有の癖があり自分自身も覚えきれずメモ書きとして残します)

文字列の分割(Split的な動作)

環境変数の文字列を分割するためには、forコマンドを使用します。このサンプルは、変数PATHVAR内の各パスをセミコロンで分割し、それぞれを新しい行に表示します。

@echo off

rem 変数に値をセット
set "PATHVAR=C:\Folder;D:\AnotherFolder"

rem セミコロンで区切られた各パスを処理 ★
for %%A in ("%PATHVAR:;=" "%") do (
    echo %%~A
)

実行結果

C:\Folder
D:\AnotherFolder

文字列の結合

文字列を連結するには、変数をつなげて代入します。

@echo off

rem 変数に値をセット
set "PATHVAR=C:\Folder;D:\AnotherFolder"

rem 追加するパス
set "NEWPATH=E:\NewFolder"

rem 既存のPATHに新しいパスを追加 ★
set "PATHVAR=%PATHVAR%;%NEWPATH%"

echo %PATHVAR%

実行結果

C:\Folder;D:\AnotherFolder;E:\NewFolder

文字列の切り出し(Substring的な動作)

環境変数%STR%から、4文字目(0始まりで3)から5文字分の部分文字列を切り出す例です。

@echo off

rem 例としての文字列を設定
set "STR=ABCDEFGHIJ"

rem 4文字目から5文字分を切り出し ★
set "SUBSTR=%STR:~3,5%"

echo %SUBSTR%

実行結果

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