VB脚本运行时错误输入超过文件末尾

时间:2013-10-13 04:41:24

标签: vbscript

我正在上一个脚本课程,我的脚本有一些问题。根据实验室分配,我的所有语法都是正确的。但是,我继续在第60,1行的文件错误结束时收到输入。我已经永远出演了这个节目并且在相当一段时间内检查了所有的字母都没有运气。任何帮助将不胜感激。这是脚本。

 dim ipAddress(5,3)
 ipAddress(0,0)="192.168.10.11"
 ipAddress(0,1)="192.168.10.12"
 ipAddress(0,2)="192.168.10.13"
 ipAddress(0,3)="192.168.10.14"
 ipAddress(1,0)="192.168.10.19"
 ipAddress(1,1)="192.168.10.20"
 ipAddress(1,2)="192.168.10.21"
 ipAddress(1,3)="192.168.10.22"
 ipAddress(2,0)="192.168.10.27"
 ipAddress(2,1)="192.168.10.28"
 ipAddress(2,2)="192.168.10.29"
 ipAddress(2,3)="192.168.10.30"
 ipAddress(3,0)="192.168.10.35"
 ipAddress(3,1)="192.168.10.36"
 ipAddress(3,2)="192.168.10.37"
 ipAddress(3,3)="192.168.10.38"
 ipAddress(4,0)="192.168.10.43"
 ipAddress(4,1)="192.168.10.44"
 ipAddress(4,2)="192.168.10.45"
 ipAddress(4,3)="192.168.10.46"
 ipAddress(5,0)="192.168.10.51"
 ipAddress(5,1)="192.168.10.52"
 ipAddress(5,2)="192.168.10.53"
 ipAddress(5,3)="192.168.10.54" 

const READ = 1
const WRITE = 2
const APPEND = 8
const ASCII = 0

dim fileName
fileName = "IP_Addresses.csv"
dim ipAddrStr
ipAddrStr = ""
dim fso
Set fso = Wscript.CreateObject("Scripting.FileSystemObject") 
Set ipFileObj = fso.CreateTextFile(fileName,True,ASCII)

For room = 0 to 5
  For computer = 0 to 3
    ipAddrSr = CStr(room+100) & "," & CStr(computer+1) & "," ipAddress(room,computer)
     & vbCrlf
    ipFileObj.write(ipAddrStr)
  Next
Next

ipFileObj.close

Set ipFileObj = fso.OpenTextFile(fileName,READ,ASCII)
WScript.Echo ipFileObj.ReadAll **' this is line 60**
ipFileObj.Close

2 个答案:

答案 0 :(得分:4)

由于您没有使用“Option Explicit”,您可以得到您应得的:您(尝试)将这些行连接到ipAddrSr但是将ipAddrStr写入文件。因此没有任何内容写入文件。

将语法错误和错误名称修复为:

ipAddrStr = CStr(room+100) & "," & CStr(computer+1) & "," & ipAddress(room,computer) & vbCrlf

答案 1 :(得分:1)

假设文件不为空,可能需要指定文件所在的目录?我想这可以在你的脚本中完成:

fileName = "c:\your_directory\IP_Addresses.csv"

或者如果你通过cscript ...在命令行中运行它

cscript.exe your.vbs "c:\your_directory\IP_Addresses.csv"

如果您愿意,可以在执行Echo之前检查文件大小...

if fileName.size > 0 then 
    Set ipFileObj = fso.OpenTextFile(fileName,READ,ASCII)
    WScript.Echo ipFileObj.ReadAll **' this is line 60**
    ipFileObj.Close
else 
    WScript.Echo = "File was empty" 
end if 

查看将参数传递给脚本here.

的详细信息