バッチファイルで変数の部分文字列を取得する(SET:~)

広告

バッチファイルで SET コマンドで変数に値を保存するときに、他の変数に保存されている文字列の部分文字列を切り出して保存することができます。指定した位置から指定した長さの文字列だけを変数に保存したい場合に利用します。ここでは、バッチファイルで変数の部分文字列を取得する方法について解説します。

部分文字列を取得する

別の変数に保存されている値を変数に保存する場合、次のように SET コマンドを使用することができます。

SET 変数1=%変数2%

このとき、変数2に保存されている値の一部分だけを変数1に保存することができます。

%変数:~n%     n文字目から最後まで	
%変数:~n,m%   n文字目からm文字分
%変数:~-n%    後ろからn文字分
%変数:~n,-m%  n文字目から後ろm文字を除いた範囲

※ 先頭の文字が 0 文字目、次の文字が 1 文字目となります。

変数に保存されている値が "ABCDEF" だった場合で考えてみます。

【n文字目から最後まで」
%変数:~2%  CDEF
%変数:~3%  DEF

【n文字目からm文字分」
%変数:~2,2%  CD
%変数:~2,3%  CDE

【後ろからn文字分」
%変数:~-2%  EF
%変数:~-4%  CDEF

【n文字目から後ろm文字を除いた範囲」
%変数:~1,-2%  BCD
%変数:~1,-3%  BC

では実際に試してみます。 SET コマンドを使って変数に保存されている値の一部分を取得してみます。

@echo off

SET STR=ABCDEF

SET SUBSTR=%STR%
echo %SUBSTR%

SET SUBSTR=%STR:~2%
echo %SUBSTR%

SET SUBSTR=%STR:~0,2%
echo %SUBSTR%

SET SUBSTR=%STR:~-4%
echo %SUBSTR%

SET SUBSTR=%STR:~1,-2%
echo %SUBSTR%

バッチファイルを実行すると、次のように表示されます。

部分文字列を取得する(1)

変数に保存されている値の一部を取得することができました。

-- --

バッチファイルで変数の部分文字列を取得する方法について解説しました。

( Written by Tatsuo Ikura )

プロフィール画像

著者 / TATSUO IKURA

これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。