ラベル replace の投稿を表示しています。 すべての投稿を表示
ラベル replace の投稿を表示しています。 すべての投稿を表示

2007年11月21日水曜日

コマンドプロンプトで文字列を置換する

(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)


参考: コマンドプロンプトを使ってみよう! -バッチファイル-

ブログ アーカイブ

tags