我正在编写一个脚本来检查文件夹共享,我将文件夹位置作为变量传递给脚本(例如: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
答案 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)