berlangganan di luar jangkauan di vbscript

Saya sedang mengerjakan skrip untuk memeriksa pembagian folder di mana saya akan meneruskan lokasi folder sebagai variabel ke skrip (contoh: Script.vbs D:\share) tetapi ketika saya menjalankannya saya mendapat kesalahan "subskrip di luar jangkauan vbscript 800a0009 "

Skrip diberikan di bawah ini,

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

person Naresh Kumar    schedule 18.12.2015    source sumber
comment
Mengapa oParameters(6)?   -  person Rowland Shaw    schedule 19.12.2015
comment
Tadinya aku mau menanyakan hal yang sama ^^   -  person Nikki9696    schedule 19.12.2015
comment
@ Nikki9696 Mungkin karena mereka memasukkan nama share ke dalam skrip sebagai argumen nomor 7? Tetap saja 7 itu banyak jadi mempertanyakannya bisa dimengerti.   -  person user692942    schedule 19.12.2015
comment
Ia secara khusus memberi contoh di postingannya dimana tidak ada argumen lain. Jika tidak ada argumen lain, maka (6) berada di luar jangkauan.   -  person Nikki9696    schedule 19.12.2015


Jawaban (3)


Baca dan ikuti dokumen: Properti Argumen (Objek WScript):

Properti Arguments berisi objek WshArguments (kumpulan argumen ). Gunakan indeks berbasis nol untuk mengambil masing-masing argumen dari koleksi ini.

Oleh karena itu, jika diharapkan Script.vbs D:\share (atau Script.vbs "D:\share"), gunakan cuplikan kode berikutnya:

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
person JosefZ    schedule 18.12.2015

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

Dim WshShell, ShareName

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

ShareName = oParameters(6)
clog = "Application"
Source = "EventCreate"

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 425 /L " & Chr(34) & Clog & Chr(34) & " /SO " & source & " /D " & Chr(34) & "Network share with Every one access is created and the information is given below " & Chr(13) & Chr(13) & completeshare & Chr(34)
'strCommand = "eventcreate /T Error /ID 1999 /L APPLICATION /D" & Chr(34) & "Network share with Every one access is created and the information is given below " & Chr(13) & Chr(13) & completeshare & Chr(34)

WshShell.Run strcommand

   End If
Wend

wscript.quit

Yang ini berfungsi ketika saya menguraikan variabel seperti di bawah ini, script.vbs 1 2 3 4 5 6 D:\share Berhasil !!!! Terima kasih atas masukan Anda yang berharga.

person Naresh Kumar    schedule 19.12.2015
comment
Saya telah memodifikasi skrip.dari ShareName = oParameters(0) menjadi ShareName = oParameters(6) - person Naresh Kumar; 19.12.2015

Ini:

ShareName = oParameters(6)

Seharusnya ini:

ShareName = oParameters(0)
person Nikki9696    schedule 18.12.2015
comment
Ini lebih merupakan komentar/balasan daripada jawaban. - person user692942; 19.12.2015
comment
Ya, saya harus menggunakan oParameters(0), saya mencoba mendapatkan nilai dari aplikasi yang melewati Parameter 6, sekarang berfungsi dengan baik. - person Naresh Kumar; 19.12.2015