1

我正在上脚本课,但我的脚本有一些问题。根据实验室作业,我所有的语法都是正确的。但是,我在第 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
4

2 回答 2

4

由于您不使用“选项显式”,因此您将得到应得的:您(尝试)将这些行连接到ipAddrSr但写入ipAddrStr文件。所以没有任何东西被写入文件。

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

ipAddrStr = CStr(room+100) & "," & CStr(computer+1) & "," & ipAddress(room,computer) & vbCrlf
于 2013-10-13T07:16:19.523 回答
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 

在此处查看将参数传递给脚本的详细信息

于 2013-10-13T05:24:09.223 回答