loops - 如何在VB脚本中逐行读取文件?

标签 loops vbscript readfile

我有以下内容逐行读取文件:

wscript.echo "BEGIN"

filePath = WScript.Arguments(0)
filePath = "C:\Temp\vblist.txt"
Set ObjFso = CreateObject("Scripting.FileSystemObject")
Set ObjFile = ObjFso.OpenTextFile(filePath)
StrData = ObjFile.ReadLine
wscript.echo "END OF FIRST PART"

Do Until StrData = EOF(ObjFile.ReadLine)
    wscript.echo StrData
    StrData = ObjFile.ReadLine
Loop

wscript.echo "END"


EOF()函数似乎不起作用:

C:\Users\EGr\Documents\Scripts\VB>cscript testloop.vbs ArgVal
Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation. All rights reserved.

BEGIN
END OF FIRST PART
C:\Users\EGr\Documents\Scripts\VB\testloop.vbs(11, 1) Microsoft VBScript runti
me error: Type mismatch: 'EOF'


我以前没有在VB中进行编程,但是我试图找出循环,以便可以修改已经处理过的VB脚本。我想逐行读取文件,并对每一行进行一些操作。如果将“直到”循环更改为Do Until StrData = EOF,它可以工作,但到达文件末尾时将引发错误:

C:\Users\EGr\Documents\Scripts\VB>cscript testloop.vbs ThisRANDOMValue
Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation. All rights reserved.

BEGIN
1
END OF FIRST PART
host1
host2
host3
C:\Users\EGr\Documents\Scripts\VB\testloop.vbs(13, 2) Microsoft VBScript runti
me error: Input past end of file


我觉得可能有一个简单的解决方案,但我一直找不到。我尝试了其他一些在线找到的解决方案,但还没有达到上述要求。

最佳答案

如有疑问,请阅读documentation

filename = "C:\Temp\vblist.txt"

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

Do Until f.AtEndOfStream
  WScript.Echo f.ReadLine
Loop

f.Close

关于loops - 如何在VB脚本中逐行读取文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15533214/

相关文章:

loops - 我应该使用 cfobject 还是 cfinvoke 来完成重复性任务?

Java FOR 循环递增并将新变量传递给方法

在 WQL/SCCM 中连接两个表

networking - 用于更改用户手动将驱动器映射到具有新服务器名称的新服务器的脚本

c - fprintf 对时间戳计数器有奇怪的影响

javascript - Javascript 中的数组搜索不起作用

php - PHP MySQL 中的循环内循环

windows - 使用适用于 Windows 的 VBScript 刷新 Windows 任务栏?

C# - 定期读取文件最后一部分的最有效方法

Java:读取文本文件然后转换的问题