こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

バッチファイルで複数のテキストファイルの置換

バッチファイルで以下のような処理を行うことはできないでしょうか?

フォルダ1以下の全てのテキストファイル内の abcde という文字列を あいうえお に置換して、上書き保存ではなく
元のファイル名+(編集済み).txt というファイル名で同じ場所に保存できないでしょうか。
バッチファイルで出来ない場合他の物でも構いません。

―――――――――――――――――――――――――――――
処理前

フォルダ1
  │
  ├フォルダ2
  │  └ファイル1.txt (内容:123abcde)
  │
  ├フォルダ3
  │  └フォルダ4
  │     └ファイル2.txt (内容:abcde123abcde123)
  │
  └フォルダ5
     └ファイル3.txt (内容:456fghij)

―――――――――――――――――――――――――――――



―――――――――――――――――――――――――――――
処理後

フォルダ1
  │
  ├フォルダ2
  │  └ファイル1.txt (内容:123abcde)
  │  └ファイル1(編集済).txt (内容:123あいうえお)
  │
  ├フォルダ3
  │  └フォルダ4
  │     ├ファイル2.txt (内容:abcde123abcde123)
  │     └ファイル2(編集済).txt (内容:あいうえお123あいうえお123)
  │
  └フォルダ5
     └ファイル3.txt (内容:456fghij)

―――――――――――――――――――――――――――――

こんな感じで出来ないでしょうか。
よろしくお願いします。

投稿日時 - 2013-03-30 15:08:24

QNo.8018846

すぐに回答ほしいです

質問者が選んだベストアンサー

こんなのでどうでしょう?

@echo off
setlocal
for /r %%a in (*) do (
echo %%a
for /f "usebackq tokens=1* delims=" %%b in ("%%a") do (
set oldtext=%%b
call :SUB abcd あいうえ "%%a"
)
)
goto :EOF

:SUB
call set newtext=%%oldtext:%1=%2%%
echo %newtext%>>"%~pn3(編集済)%~x3"
goto :EOF

投稿日時 - 2013-03-30 20:58:01

お礼

お礼が遅くなり申し訳ありません。
動作確認しました、期待通りの動作で感激しております。
この度はどうもありがとうございました。

投稿日時 - 2013-04-03 15:25:23

このQ&Aは役に立ちましたか?

3人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

あ、最初の (*) は (*.txt) に読み替えてください。

投稿日時 - 2013-03-30 21:01:51

お礼

3行目の(*)を(*.txt)にして動作確認しました。
どうもありがとうございました。

投稿日時 - 2013-04-03 15:27:32

あなたにオススメの質問