dポイントプレゼントキャンペーン実施中!

お世話になります。

早速ですが、
以前、以下のような、「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改行のファイルです。

あるいは、
もっと簡単な記述方法等ありましたら、ご意見、ご指導ください。

A 回答 (1件)

> 「置換後のファイルの最後に改行文字が入ってしまいます。

」原因がわかりません。

と言っているが

> myFile.WriteLine (myRec)

のようにしている以上当たり前だと思う。改行が必要ないのであればWriteLineではなくWriteを使うのでは。
    • good
    • 0
この回答へのお礼

お世話になります。

VBSを使い始めて1週間目で、WRITE の存在が理解できてませんでした。
明快なアドバイスありがとうございました。

おかげさまで、問題解決しましt。

お礼日時:2011/10/10 20:54

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!