みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

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

締切り済みの質問

Windowsコマンドラインで文字列置換する方法

Windowsでバッチファイルを作成し、テキストファイルの中の文字列を置換しようとしています。

下記のような内容のバッチファイルを作りました。
ーーーーーーーーー
@echo off
set fname=.¥change.txt
set orgword=bbb
set newword=222

copy %fname% orgfile >nul
type nul >%fname%
for /F %%I in (orgfile) do (set readline=%%I&& call :sub)
del org file

sub:
call set outline=%%readline:%orgword%=%newword%%%
echo %outline%>>%fname%
go to :eof

:end
ーーーーーーーーー

このバッチを利用して、
change.txt
ーーーーーーーーー
aaabbbccc
ーーーーーーーーー
を変換すると、
ーーーーーーーーー
aaa222ccc
ーーーーーーーーー
となってくれますが、
ーーーーーーーーー
<aaabbbccc/>
ーーーーーーーーー
を変換すると、
ーーーーーーーーー
ECHO は <OFF> です。
ーーーーーーーーー
となってしまいます。
これを、
ーーーーーーーーー
<aaa222ccc/>
ーーーーーーーーー
としたい時にはどのようにしたら良いでしょうか?

投稿日時 - 2013-11-27 18:07:54

QNo.8364218

困ってます

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

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

回答(3)

ANo.3

windowsのコマンドラインでbatよりも、ちょっとだけ高級なことをやりたいなら、
WSH(Windows Script Host)でやるのがよいです。
VBScriptかJavascriptが使えます。正規表現を使った置換なんかもできます。

投稿日時 - 2013-11-27 23:42:54

ANo.2

DOSと言うか、使用しているOSのバージョンなどの問題で
使えない環境もあるので参考ということで。。。

  EDLINを使う

ラインエディタなんですけど、これ、結構優秀で外部からコマンドを指定して起動できるんです。
そこで、コマンドを記述したテキスト(例:CMND.TXT)を用意して、対象のテキスト(例:example.txt)を

 edlin exsmple < cmnd.txt

のようにして使うんですけどどうでしょう。
コマンドの種類や動作については
 http://support.microsoft.com/kb/67706/ja
などを参考にしてみてください。


※ Windows7 64ビット版にEDLINは含まれませんし使えません。
  ほかの64ビット版でも同様と思われます。
  ・・・そんなわけで自分の環境では使えないのでコマンド記述の確認ができません。
  あしからず・・・。

投稿日時 - 2013-11-27 20:01:55

ANo.1

sedとかgrepを導入しちゃうなぁ・・・

投稿日時 - 2013-11-27 18:19:03

補足

早速のご回答ありがとうございます。
自分のPCではないため、なるべく環境に変更を加えずに実施できたらと思い、バッチを作っています。
ですが、良い解決策がなければ、
・sed for Windows等の導入を検討。
・VBが動く環境のためスクリプトか簡単なexeを作って対応
としたいと思います。

投稿日時 - 2013-11-27 18:44:32

あなたにオススメの質問