下标超出了vbscript的范围

时间:2015-12-18 21:46:06

标签: vbscript

我正在编写一个脚本来检查文件夹共享,我将文件夹位置作为变量传递给脚本(例如:Script.vbs D:\ share),但是当我运行它时出现错误"下标超出范围vbscript 800a0009"

下面给出的脚本,

Const EVENT_TYPE_ERROR   = 1
Const EVENT_TYPE_WARNING = 2
Const EVENT_TYPE_INFORMATION = 4

Set oParameters = WScript.Arguments
Set WshShell = WScript.CreateObject("WScript.Shell") 

ShareName = oParameters(6)
clog = "Windows Share"
Source = "ShareSecurity"

Dim WshShell
Set objShell = CreateObject("WScript.Shell")
set ObjExec = objShell.exec("icacls """"& ShareName & """"")
Set objStdOut = ObjExec.StdOut

While Not objStdOut.AtEndOfStream
   strLine = objStdOut.ReadLine
   If InStr(strLine,"Everyone") Then
set ObjExec1 = objShell.exec("icacls """"& ShareName & """"")
completeshare = ObjExec1.StdOut.ReadAll()
strCommand = "eventcreate /T Error /ID 422 /L " & Chr(34) & Clog & Chr(34) & " /SO " & source & " /D " & Chr(34) & completeshare & "Network share with Every one access is created and the information is given below" & Chr(34)
WshShell.Run strcommand

   End If
Wend

wscript.quit

2 个答案:

答案 0 :(得分:2)

阅读并关注文档:Arguments Property (WScript Object)

  

Arguments属性包含WshArguments object (a collection of arguments)。使用从零开始的索引进行检索   来自这个集合的个人论点。

因此,如果预期 Script.vbs D:\share(或Script.vbs "D:\share"),请使用下一个代码段:

Set oParameters = WScript.Arguments
If oParameters.Count > 0 Then
   ShareName = oParameters(0)
Else
   '   usage prompt and then `Wscript.Quit`, or
   ShareName = "some default value"
End If

答案 1 :(得分:0)

此:

ResourceBundleMessageSource

应该是这样的:

ShareName = oParameters(6)