(2009/06/13 追記: コメント欄に、とても簡単に置換する方法を教えてもらったので、まずそちらを参考にすることをお薦めします。)
Widnowsのコマンドプロンプトで文字列の置換をする方法。
コマンドとしては提供されていないので、for文を利用する。
例えばシステム日付(例:2007/11/21)のスラッシュをハイフンにする場合。
@echo off
rem 変換したい文字列をセット
set before=%date%
rem 置換する文字をセット
set search=/
rem 置換後の文字をセット
set replace=-
rem 変数初期化
set after=
set replace_wk=
:loop
if "%before%" == "" goto :end
for /f "tokens=1* delims=%search%" %%A in ("%before%") do (
set after=%after%%replace_wk%%%A
set before=%%B
set replace_wk=%replace%
)
goto :loop
:end
rem 変換結果の確認
echo %after%
対象文字列が日付だけなら、もっとシンプルにできる。
for /f "tokens=1-3 delims=/" %%A in ("%date%") do set today=%%A-%%B-%%C
echo %today%
()の中で変数を使う場合、遅延展開が絡んでくるので注意。(参考:setコマンドの遅延展開について (DOSプロンプト活用相談室LOG) )
参考: コマンドプロンプトを使ってみよう! -バッチファイル-
4 件のコメント:
echo %date:/=-%でできますよ
おお、本当だ。
ありがとうございます。
こんなに簡単にできたんですね。
「環境変数の部分文字列の抽出と置換」が参考になります。
http://www.atmarkit.co.jp/fwin2k/win2ktips/419batchdate/batchdate.html
あと、この辺も知っていると便利です。
「バッチファイルの制御用コマンド」
http://www.fpcu.jp/dosvcmd/batch.htm
ご参考になれば。
ありがとうございます!
コメントを投稿