【问题标题】:VBscript error input past end of fileVBscript错误输入超过文件末尾
【发布时间】:2014-09-25 01:26:24
【问题描述】:

我有 3 个脚本,它们都必须以正确的顺序重复运行。

  1. 第一个脚本 - 对 PC 列表(在文本文件输入中列出)执行一个过程,具体取决于它们是否在线/离线。它会输出一个在线电脑列表和另一个离线电脑列表
  2. 第二个脚本 - 从原始列表和第一个脚本的输出中获取 PC 差异,以了解哪些机器从第一个脚本运行了进程
  3. 第三个脚本 - 使用差异,更新输入列表

下面的脚本是第三个脚本。每当我运行它时,它都会以错误“输入文件结尾”结束。我尝试了几次修改,但总是以这种方式结束。

我对第三个脚本的想法是,第二个文件的 Differences.txt 输出仍然需要从第一个脚本运行该过程,所以我只需删除原始输入文件并将其重命名为新文件输出文件。但是,我还必须跟踪已经完成该过程的那些,因此我必须将它们列出/附加到另一个文本文件中。

提前感谢您的帮助。

Option Explicit
Dim objFso
Dim Fso
Dim firstfile,secondfile,file,fileText

Set objFSO = CreateObject("Scripting.FileSystemObject")
If objFSO.FileExists("Machines.ini") Then objFSO.DeleteFile("Machines.ini")

Set Fso = WScript.CreateObject("Scripting.FileSystemObject")
Fso.MoveFile "Differences.txt", "Machines.ini"

firstfile="Notified.txt"
secondfile="Notified-all.txt"

Set fso=CreateObject("Scripting.FileSystemObject")
Set file=fso.OpenTextFile(firstfile)
fileText = fileText & file.ReadAll() & vbCrLf
file.Close

Set file=fso.OpenTextFile(secondfile)
fileText=filetext & file.ReadAll()
file.Close

set file=fso.CreateTextFile(secondfile,true)
file.Write fileText
file.close

【问题讨论】:

    标签: vbscript


    【解决方案1】:

    当您在一个空文件上调用 ReadAll 时,您会收到该错误。检查AtEndOfStream 属性,只有当它为假时才读取内容:

    If Not file.AtEndOfStream Then fileText = fileText & file.ReadAll
    

    【讨论】:

    • 谢谢!我不知道会这么简单。第一次尝试就立即工作。正是我所需要的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    • 2013-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多