53111
10.09.2007, aktualisiert um 13:46:37 Uhr
3843
3
0
falsche anzahl netzlaufwerke?
hallo ich habe mein script noch etwas erweitert und will noch einige dinge überprüfen lassen bevor dann eine sub gestartet werden soll.
irgendwie werden immer 2 laufwerke zuviel gezählt. ich erwarte eigentlich eine test = netzobjekt.EnumNetworkDrives die doppelte anzahl wie ich laufwerke besitze. (d.h. bei 6 elementen 3 vorhandene laufwerke?)
wo ist mein fehler? und lässt er sich sauber mit dem "-2" beheben?
irgendwie erscheint dann auch ein fehler in der innersten if entscheidung?
gruß saibonaut
irgendwie werden immer 2 laufwerke zuviel gezählt. ich erwarte eigentlich eine test = netzobjekt.EnumNetworkDrives die doppelte anzahl wie ich laufwerke besitze. (d.h. bei 6 elementen 3 vorhandene laufwerke?)
wo ist mein fehler? und lässt er sich sauber mit dem "-2" beheben?
Dim netzobjekt, benutzername, laufwerkarray, arraylaenge
set netzobjekt=wscript.createobject("wscript.network")
benutzername = netzobjekt.UserName
'Pfad der Protokoll-Datei hier einstellen:'
Name = "C:\Dokumente und Einstellungen\"&benutzername&"\Desktop\Protokoll_zu_neuen_Netzlaufwerken.txt"
Set test = netzobjekt.EnumNetworkDrives
'Laufwerknamen + gewünschten Pfad hier einstellen:'
laufwerkarray = Array( "H:",_
"\\Server2\Home\"&benutzername,_
"X:",_
"\\Server2\work",_
"Z:",_
"\\Server2\apps"_
)
arraylaenge = UBound(laufwerkarray) + 1
If test.Count <> 0 Then
If test.Count - 2 = arraylaenge Then 'falsche anzahl an laufwerken???'
For k = 0 to UBound(laufwerkarray)
If test.Item(k) = laufwerkarray(k) And test.Item(k+1) = laufwerkarray(k+1) Then
wscript.Echo "alles ok"
Else
wscript.Echo "else 3"
'sub aufrufen'
End If
Next
Else
wscript.Echo "else 2"
'sub aufrufen'
End If
Else
wscript.Echo "else 1"
'sub aufrufen '
End If
irgendwie erscheint dann auch ein fehler in der innersten if entscheidung?
gruß saibonaut
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-Key: 68275
Url: https://administrator.de/contentid/68275
Ausgedruckt am: 28.03.2024 um 22:03 Uhr
3 Kommentare
Neuester Kommentar
Hallo saibonaut!
Die "EnumNetworkDrives"-Aufzählung kann auch Laufwerksverbindungen ohne zugeordneten Laufwerksbuchstaben enthalten.
Lass Dir doch einfach zur Kontrolle die entsprechenden Werte anzeigen, etwa:
Abgesehen davon, dass ich eine übereinstimmende Reihenfolge der Elemente in beiden Arrays nicht voraussetzen, sondern zur Sicherheit jedes Element in einer zweiten Schleife vergleichen würde, solltest Du eher
verwenden, weil Du ansonsten bei tatsächlich gleicher Anzahl von Elementen mit dem Index (i + 1) "out of bounds" landest.
Grüße
bastla
Die "EnumNetworkDrives"-Aufzählung kann auch Laufwerksverbindungen ohne zugeordneten Laufwerksbuchstaben enthalten.
Lass Dir doch einfach zur Kontrolle die entsprechenden Werte anzeigen, etwa:
For i = 0 to test.Count - 1 Step 2
WScript.Echo "Laufwerk " & test.Item(i) & " = " & test.Item(i + 1)
Next
Abgesehen davon, dass ich eine übereinstimmende Reihenfolge der Elemente in beiden Arrays nicht voraussetzen, sondern zur Sicherheit jedes Element in einer zweiten Schleife vergleichen würde, solltest Du eher
For k = 0 to UBound(laufwerkarray) - 1 Step 2
Grüße
bastla