0

我正在尝试获取 .HOL 文件中的最后一行。它将获得最后一行,但每次运行脚本时,它都会堆叠前一行。

Dim lastLine
Dim objFile
Dim objFSO

Const ForReading = 1

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("C:\Desktop\OUTLOOK.HOL", ForReading)

Do Until objFile.AtEndOfStream

  lastLine = objFile.ReadLine

Loop

objFile.Close

Wscript.Echo lastLine

我正在尝试制作一个脚本,该脚本可以删除任何早于当前日期的日期,然后在 .HOL 文件的底部添加一个新日期。我需要最后一行的原因是我可以在那个日期加上 2 周。

What the Echo Looks like Run 1                      Run 2
Date1                                               Date1         
                                                    Date2
Run 3                                      
Date1
Date2
Date3

And so forth if you get it. (Id post picture but I cant yet)
=========== .HOL File ======= 
[Test Days] 5
Test Day, 5/3/2013
Test Day, 5/17/2013
Test Day, 5/31/2013
Test Day, 6/14/2013
Test Day, 6/28/2013
4

2 回答 2

1

简单的修复:

    dim x

    Do Until objFile.AtEndOfStream
      x = objFile.ReadLine
      If objFile.atEndOfStream Then
         lastLine = x
      End If
    Loop

以下函数将增加 2 周到 2010 年 1 月 31 日,您只需要从您的行中编写它:

    DateAdd("ww",2,"31-Jan-10")

几个编辑..自从vbscript以来已经有一段时间了!

于 2013-06-28T20:13:33.733 回答
1

如果要替换文件中的最后日期,可以尝试以下操作:

Set fso = CreateObject("Scripting.FileSystemObject")

text = Split(fso.OpenTextFile("C:\Desktop\OUTLOOK.HOL").ReadAll, vbNewLine)

Set f = fso.OpenTextFile(filename, 2)
For i = 0 To UBound(text)-1
  f.WriteLine text(i)
Next

lastline = Split(text(UBound(text)), ",")
newdate = DateAdd("ww", 2, lastline(1))
lastline(1) = Year(newdate) & "/" & Right("0" & Month(newdate), 2) _
                & "/" & Right("0" & Day(newdate), 2)
f.WriteLine Join(lastline, ",")

f.Close
于 2013-06-28T21:38:33.923 回答