フォロトップ:この会議室が所属するフォロのトップページへ移動します 会議室トップ:この会議室のトップページへ移動します トピック一覧:この会議室内のトピックを一覧表示します おすすめレビュー:この会議室に関連付けられたレビューを一覧表示します 発言者一覧:この会議室に発言したことのあるメンバーを一覧表示します 会議室に参加:この会議室への参加登録が出来ます
文字サイズ変更: [] [] []
お目当てのフォロへGO! 
オフィシャル
エンタメ
スポーツ
文化・趣味
コンピュータ
くらしと健康
芸術・学問
ビズと社会
地域・年代
ノンジャンル


2008年11月17日
00:44
【103】  テキストファイルの文字置換
たびたびお世話になります。
test.txt内の特定の文字を一括置換するバッチを作りたいのですが、

rem test.txt内の「a」を「b」に置換
for /f %%i in (test.txt) do (
set LINE=%%i
echo %LINE:a=b%
)
この中でechoで環境変数を参照するところがうまく作動せず、
途方にくれています。どうかお力添え頂ければ幸いです。
コメント
2008年11月18日
01:46
ログに多数ありますが、% による環境変数展開は、for文評価時に行われますので、%LINE%は空です。

方法1:
for /f %%i in (test.txt) do call :sub "%%i"
goto :EOF
:sub
set LINE=%~1
echo %LINE:a=b%

方法2:
setlocal enabledelayedexpansion
for /f %%i in (test.txt) do (
set LINE=%%i
echo !LINE:a=b!
)

ところで、これだとファイル中に空白があるとそれ以降行末までは無視されますよ。
for /f "delims=" %%i にすると良いです。
2008年11月21日
01:26
レスが遅れ、失礼致しました。

方法を2つも示して頂き、ありがとうございます。
さらに 過去ログに頻出する
"delims="  ←区切りを指定しない??
の必要性がわからなかったので
大変勉強になりました。
すべて表示 1番~2番を表示
 コメントするにはfolomyへの会員登録ならびにログインが必要です。 folomyに入会する
ログインする(すでに登録済みの方)
----