# [VBS] Array Items löschen



## Hawkings (16. November 2007)

Sers @ all...

Ich habe folgenden Quelltext:

```
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?! 


```
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


----------



## Hawkings (16. November 2007)

Narf....sry

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

tutorials bringts echt in jeder sicht 

Hier der 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
```


----------

