[VBS] Array Items löschen

Hawkings

Erfahrenes Mitglied
Sers @ all...

Ich habe folgenden Quelltext:
Code:
Sub Ping(clientArr, sizearray)
	i = 0
	For i = 0 To sizearray
		lCommand = "ping "&clientArr(i)
		lResult = Wshshell.Run (lCommand, 0, True)
		If lResult <> 0 Then
			lpclist = lpclist & vbCr & clientArr(i)
		End If
	Next
	If lpclist <> "" Then
		lanswer = MsgBox("Es konnte keine Verbindung zu folgenden PCs erstellt werden" & vbCr&vbCr&lpclist&vbCr&vbCr&"Es kann mit hoher Wahrscheinlichkeit kein Update durchgeführt werden",4,"Continue?!")
		If lanswer = 6 Then
			Call Connect(clientArr, sizearray)
		Else
			WScript.Echo "Programmabbruch durch User"
			WScript.Quit
		End If
	Else
		Call Connect(clientArr, sizearray)
	End If
End Sub



'Verbinden des Netzlaufwerks
Sub Connect(clientArr, sizearray)
	For i = 0 To sizearray
		lCommand = "net use "&netpath&": \\"&clientArr(i)&"\"&netdestination&"$ /user:"&domain&"\"&lUser&" " &LPW
		WScript.Echo lCommand
	Next

End Sub

Zunächst einmal zu dem Sinn, ich bekomme von einem C# Tool Übergabeparameter die ich in mehrere Arrays einlese.
Ein Array davon beinhaltet eine Auflistung von Clients, mit denen ich ein Netzlaufwerk verbinden möchte in einer Domäne. Zunächst wird jedoch per Ping geprüft, welche Rechner erreichbar sind und damit auch für eine Netzlaufwerkverbindung geeignet.
Ich möchte, sollte sich durch den Ping herausstellen, dass ein Rechner nicht verbunden werden kann, das Item mit dem Rechnernamen aus dem Array rauslöschen und so eine Liste erhalten, in denen nur noch die PCs stehen, die eine Verbindung haben.

Gibt es da eine Funktion oder muss ich das so in etwa machen?!

Code:
Sub Ping(clientArr, sizearray)
	i = 0
        e = 0
	For i = 0 To sizearray
		lCommand = "ping "&clientArr(i)
		lResult = Wshshell.Run (lCommand, 0, True)
		If lResult = 0 Then
                        clientArr(e) = clientArr(i)
                        e = e+1
		End If
	Next

...
...
..
End Sub


Hätte ich dann da einfach das Array neu geschrieben mit nur den Clientnamen, die auch wirklich zu erreichen sind?!

Gruß, Hawkin
 
Narf....sry

Als ich vorhin den Beitrag egschrieben habe, fiel mir gleich schon die alternative ein...

tutorials bringts echt in jeder sicht :p

Hier der Code ...

Code:
Sub Ping(clientArr, sizearray)
	i = 0
	e = 0
	For i = 0 To sizearray
		lCommand = "ping "&clientArr(i)
		lResult = Wshshell.Run (lCommand, 0, True)
		If lResult = 0 Then
			clientArr(e)=clientArr(i)
			e = e+1
		Else
			lpclist = lpclist & vbCr & clientArr(i)
		End If
	Next
	
		For k = 0 To (e-1)
			WScript.Echo "clientArray true "&clientArr(k)
		Next
	If lpclist <> "" Then
		lanswer = MsgBox("Es konnte keine Verbindung zu folgenden PCs erstellt werden" & vbCr&vbCr&lpclist&vbCr&vbCr&"Es kann mit hoher Wahrscheinlichkeit kein Update durchgeführt werden",4,"Continue?!")
		If lanswer = 6 Then
			Call Connect(clientArr, e)
		Else
			WScript.Echo "Programmabbruch durch User"
			WScript.Quit
		End If
	Else
		Call Connect(clientArr, e)
	End If
End Sub



'Verbinden des Netzlaufwerks
Sub Connect(clientArr, e)
WScript.Echo "Connect "&e
	For i = 0 To (e-1)
		lCommand = "net use "&netpath&": \\"&clientArr(i)&"\"&netdestination&"$ /user:"&domain&"\"&lUser&" " &LPW
		WScript.Echo lCommand
	Next

End Sub
 

Neue Beiträge

Zurück