0

我有以下 vbscript 来替换文件中的文本。它完全符合我的要求,但是它在文件末尾为我所做的每次传递添加了一个空行。如果我将“黑色”替换为“红色”,然后将“白色”更改为“黄色”,则会在文本文件末尾添加两个空行。有没有办法改变它所以它不添加行?

这是脚本:

Const ForReading = 1
Const ForWriting = 2

strFileName = Wscript.Arguments(0)
strOldText = Wscript.Arguments(1)
strNewText = Wscript.Arguments(2)

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile(strFileName, ForReading)

strText = objFile.ReadAll
objFile.Close

strNewText = Replace(strText, strOldText, strNewText)

Set objFile = objFSO.OpenTextFile(strFileName, ForWriting)
objFile.WriteLine strNewText

objFile.Close

ps - 语法是:cscript /nologo replace.vbs InputFile "OldText" "NewText"

4

3 回答 3

2

objFile.WriteLine在末尾添加一个换行符。你可能需要objFile.Write

WriteLine 将添加 \r\n (或任何系统换行符)

于 2013-07-03T20:01:14.157 回答
1

您的

strText = objFile.ReadAll

将读取文件的所有内容,包括(可能)结尾的 EOL。(.ReadAll <> .ReadLine)

objFile.WriteLine strNewText

添加EOL。所以使用

objFile.Write strNewText
于 2013-07-03T20:03:28.650 回答
0

改变

objFile.Writeline 

objFile.Write
于 2013-07-03T20:05:47.283 回答