2013-07-03 5 views
0

У меня есть следующий vbscript для замены текста внутри файла. Он делает именно то, что я хочу, однако он добавляет пустую строку в конец файла для каждого прохода, который я делаю. Если я заменил «черный» на «красный», а затем изменил «белый» на «желтый», он добавил две пустые строки в конец текстового файла. Есть ли способ изменить это, чтобы он не добавлял строки?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 

P.S. - синтаксис: cscript/nologo replace.vbs InputFile «OldText» «NewText»

+0

Вы пробовали 'objFile.Write strNewText'? – jonhopkins

ответ

2

objFile.WriteLine добавляет символ новой строки в конце. Вы, вероятно, нужно objFile.Write

WriteLine добавит \ г \ п (или любой другой системы символ новой строки)

1

Ваш

strText = objFile.ReadAll 

прочтет все содержимое файла, в том числе (возможно) а конечный EOL. (.ReadAll <> .readline)

objFile.WriteLine strNewText 

будет добавить EOL. Так что используйте

objFile.Write strNewText 
Смежные вопросы