Windowsのバッチ内などで、文字列の置換を行いたい場合があります。
よく使うのは、現在日付や時間を取得して、そのスラッシュ(/)などを置換し、「YYYYMMDD」形式の文字列にして、ファイル名などに利用するシーンでしょうか。
このような場合、%date%で取得した文字列の何番目から何番目を取って。。。という風に加工してもよいですが、文字列置換の方法を使うと記述がすっきりします。
文字列の置換は以下のような構文で可能です。
実際の例を見てみましょう。
batの文字列置換の基本的な構文
基本的な構文は、
%[元の文字列]:[置き換え前の文字列]=[置き換え後の文字列]%
のようになります。
「%[元の文字列]:/=%」のように、
[置き換え前の文字列]をスラッシュ、[置き換え後の文字列]を空にしておくと、YYYY/MM/DD ⇒ YYYYMMDD
に変換することができますね。
コピペで使える文字列置換のサンプルソース
@echo off
set dateStr=%date%
set timeStr=%time%
echo %dateStr%
echo %timeStr%
set formtDateStr=%dateStr:/=_%
set formtTimeStr=%timeStr::=%
echo %formtDateStr%
echo %formtTimeStr%
上記が、具体的な記述方法になります。
実行すると、
のようになりますね。