在vbscript中写新行

时间:2017-09-07 20:59:51

标签: vbscript text-files

我一直在尝试制作一个写在底部新行的VBScript。唯一的在线帮助似乎是让脚本找到要写入的行,但这不是我想要的。我正在创建一个日志,在txt文件底部的新行中输入信息,而不会干扰其他行上的先前日志。

3 个答案:

答案 0 :(得分:0)

您可以使用FileSystemObject打开文件,并使用TextStream对象写入(附加)

Dim fso 
Dim txtStream 
Set fso = CreateObject("Scripting.FileSystemObject")
set txtStream = fso.OpenTextFile("pathtofile", 8)
txtStream.WriteLine vbCrLf & "hello world"
txtStream.Close

答案 1 :(得分:0)

通过将OpenTextFile()方法的 iomode 参数设置为8来打开要追加的文件。

  

设置

     

iomode 参数可以具有以下任何设置:

Constant     Value Description
ForReading   1     Open a file for reading only. You can't write to this file.
ForWriting   2     Open a file for writing.
ForAppending 8     Open a file and write to the end of the file.
filename = "C:\path\to\your.log"

Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile(filename, 8)

...

f.Close

答案 2 :(得分:0)

以下是另一种使用ADODB.Stream的方法。我通常更喜欢这个,因为你对Charset有了更多的控制权,你可以使用Position

更轻松地移动内容
Const FILE_NAME = "file.txt"

Const adTypeText = 2
Const adSaveCreateOverWrite = 2
Const adWriteLine = 1
Const adCRLF = -1

dim stream: set stream = CreateObject("ADODB.Stream")
stream.Type = adTypeText
stream.Charset = "ASCII"
stream.LineSeparator = adCRLF
stream.Open
stream.LoadFromFile FILE_NAME 
' move to the end of the stream / file
stream.Position = stream.Size
' Replace Empty with the text you want to append
stream.WriteText Empty, adWriteLine
stream.SaveToFile FILE_NAME, adSaveCreateOverWrite 
stream.Close