ファイル内の文字列を置換するcscriptについて
お世話になります。
早速ですが、
以前、以下のような、「UNIXファイルの文字列を置換する」プログラムを
Cscript で記述する方法を教えていただいたものですが、
cscript //nologo foo.vbs < t22.org > t22.txt
====foo.vbs====================================================
Do While Not WScript.StdIn.AtEndOfStream
str = WScript.StdIn.ReadLine
WScript.StdOut.Write replace(str,"abc","xxx") & vbLF
Loop
今回、これをさらに、
Cscript で「置換するファイル」と「置換する文字列」も指定するプログラム
にしたいと思い記述してみたのですが、下記のような問題が発生します。
「置換後のファイルの最後に改行文字が入ってしまいます。」原因がわかりません。
cscript //nologo f00.vbs t22.txt aaa xxx
====foo.vbs====================================================
Dim myFile
Dim myRec
Dim fso
Dim txt, wd1, wd2
txt = WScript.Arguments(0)
wd1 = WScript.Arguments(1)
wd2 = WScript.Arguments(2)
WScript.Echo txt
WScript.Echo wd1
WScript.Echo wd2
Set fso = CreateObject("Scripting.FileSystemObject")
Set myFile = fso.OpenTextFile(txt)
myRec = myFile.ReadAll
myRec = replace(myRec,wd1,wd2)
myFile.Close
Set myFile = fso.CreateTextFile(txt)
myFile.WriteLine (myRec)
myFile.Close
===============================
このコードのどこに問題があるのでしょうか?
読み込んでいるファイルは、Shift-JIS LF改行のファイルです。
あるいは、
もっと簡単な記述方法等ありましたら、ご意見、ご指導ください。
お礼
ありがとうございました。 やりたいことが完璧に出来ましたm(__)m。