Loops vbscript获取文本中的最后一行
我正在尝试获取.HOL文件中的最后一行。 它将获得最后一行,但每次运行脚本时,它都会堆叠前面的行Loops vbscript获取文本中的最后一行,loops,vbscript,outlook-2010,Loops,Vbscript,Outlook 2010,我正在尝试获取.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 objF
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文件的底部添加一个新日期。我需要最后一行的原因是,我可以选择那个日期,再加上两周
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
简单的解决方法:
dim x
Do Until objFile.AtEndOfStream
x = objFile.ReadLine
If objFile.atEndOfStream Then
lastLine = x
End If
Loop
以下功能将在2010年1月31日之前增加2周,您只需从您的行中编写:
DateAdd("ww",2,"31-Jan-10")
几次编辑。。已经有一段时间没有vbscript了 如果要替换文件中的最后一个日期,可以尝试以下操作:
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
当文件已经在流的末尾时,就没有什么可读的了,因此您的命令将只是阻塞。这将使脚本处于无限循环中。为什么需要另一个if来表示一旦到达文件末尾就存储变量?当循环到达终点时,不会已经存储最后一行了吗?.AtEndOfStream是在文件的最后一行之后运行还是在最后一行停止?哦,谢谢你的加入!!!这比我以前做的更好,因为它不会阻塞,这个只会传递流中的最后一行,因为readline是移动到下一行的函数。。duh?谢谢大家的帮助!这是一个丰富的信息!谢谢。你说的“叠前几行”是什么意思?此外,您不能简单地在文件底部附加日期
.HOL
文件具有特定的格式。简单地附加一个日期会破坏这种格式。因此,请更详细地解释您想要删除什么以及您想要添加什么。举一个例子会很有帮助。包括格式。我只需要文件的最后日期再加两周。假设第二行(在.HOL文件中)是2013年1月1日的测试日(第一行是[Test Days]50)。文件的最后一行是2013年6月6日的测试日,所以我得到的结果是,如果第二行日期<今天日期,我删除了该行(有效)然后在.HOL文件的底部添加一个新日期。因此,我将输入我的所有日期。运行脚本。第一次运行=6/20/2012(正确)第二次运行=7/4/2013和6/20/2012每次运行都将在最后一个日期之后(我称之为堆叠)有一个额外的日期。