VBScript und OR
Hi zusammen,
derzeit bastel ich ein bisschen in VBScript rum.
Leider habe ich mit dem OR Operator einige Probleme.
Ich versuche derzeit abzufragen ob der Computername einen bestimmten String enthält.
Dies habe ich mit Left und Right auch schon so beschränkt das er mir die Stellen 3 und 4 des Namens Ausgibt. In dem Fall die Länderkennung (49, 32 usw)
Die normale Abfrage funktioniert auch soweit so gut.
Hänge ich nun aber das OR hinterher wird es immer als korrekt gewertet.
Hier mal der derzeitige Code.
Der Ländercode ist in meinem Fall derzeit 49 von daher sollten eigentlich beide Skripte ins Else reinlaufen.
Leider tut es das mit einem OR beim IF leider nicht.
Funktioniert
Funktioniert nicht
derzeit bastel ich ein bisschen in VBScript rum.
Leider habe ich mit dem OR Operator einige Probleme.
Ich versuche derzeit abzufragen ob der Computername einen bestimmten String enthält.
Dies habe ich mit Left und Right auch schon so beschränkt das er mir die Stellen 3 und 4 des Namens Ausgibt. In dem Fall die Länderkennung (49, 32 usw)
Die normale Abfrage funktioniert auch soweit so gut.
Hänge ich nun aber das OR hinterher wird es immer als korrekt gewertet.
Hier mal der derzeitige Code.
Der Ländercode ist in meinem Fall derzeit 49 von daher sollten eigentlich beide Skripte ins Else reinlaufen.
Leider tut es das mit einem OR beim IF leider nicht.
Funktioniert
Set objNetwork = CreateObject("Wscript.Network")
strcomputername = ucase((objnetwork.computername))
Const ADS_PROPERTY_APPEND = 3
IF right(left(strcomputername,4),2) = "32" THEN
Set objNet = WScript.CreateObject("WScript.Network")
WScript.Echo "Your Computer Name is " & right(left(objNet.ComputerName,4),2)
WScript.Echo "Your Username is " & objNet.UserName
Else
Set objNet = WScript.CreateObject("WScript.Network")
WScript.Echo "Your Computer Name is " & objNet.ComputerName
WScript.Echo "Your Username is " & objNet.UserName
End IF
Funktioniert nicht
Set objNetwork = CreateObject("Wscript.Network")
strcomputername = ucase((objnetwork.computername))
Const ADS_PROPERTY_APPEND = 3
IF right(left(strcomputername,4),2) = "32" OR "35" THEN
Set objNet = WScript.CreateObject("WScript.Network")
WScript.Echo "Your Computer Name is " & right(left(objNet.ComputerName,4),2)
WScript.Echo "Your Username is " & objNet.UserName
Else
Set objNet = WScript.CreateObject("WScript.Network")
WScript.Echo "Your Computer Name is " & objNet.ComputerName
WScript.Echo "Your Username is " & objNet.UserName
End IF
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 335400
Url: https://administrator.de/contentid/335400
Ausgedruckt am: 25.11.2024 um 12:11 Uhr
5 Kommentare
Neuester Kommentar
Hallo Invisan,
nach dem OR erfolgt bei dir kein zweiter Vergleich.
BTW Schau dir mal Mid an.
Grüße
rubberman
nach dem OR erfolgt bei dir kein zweiter Vergleich.
kennung = right(left(strcomputername,4),2)
IF kennung = "32" OR kennung = "35" THEN
BTW Schau dir mal Mid an.
Grüße
rubberman
Moin,
Hast du es mal so versucht?
Gruß
em-pie
Set objNetwork = CreateObject("Wscript.Network")
strcomputername = ucase((objnetwork.computername))
Const ADS_PROPERTY_APPEND = 3
DIM strComp ' <- Ergänzung, da sonst Fehlerhaft
strComp=right(left(strcomputername,4),2)
IF ((strComp = "32") OR (strComp = "35")) THEN
Set objNet = WScript.CreateObject("WScript.Network")
WScript.Echo "Your Computer Name is " & strComp
WScript.Echo "Your Username is " & objNet.UserName
Else
Set objNet = WScript.CreateObject("WScript.Network")
WScript.Echo "Your Computer Name is " & objNet.ComputerName
WScript.Echo "Your Username is " & objNet.UserName
End IF
Hast du es mal so versucht?
Gruß
em-pie
Es fehlte ein (habe es oben ergänzt)
Habe es oben angepasst.
Warum ich das im übrigen so angedacht habe:
dein String muss zur Laufzeit somit nur 1x zerfleddert werden und ich für jeden Vegleich aufs Neue.
Hat auch einen weiteren Aspekt: Wartungsfreundlichkeit. Musst du nun 3 STellig prüfen, wird es nur noch einmal im Skript angepasst und nicht mehr an 3 Stellen
DIM strComp
Habe es oben angepasst.
Warum ich das im übrigen so angedacht habe:
dein String muss zur Laufzeit somit nur 1x zerfleddert werden und ich für jeden Vegleich aufs Neue.
Hat auch einen weiteren Aspekt: Wartungsfreundlichkeit. Musst du nun 3 STellig prüfen, wird es nur noch einmal im Skript angepasst und nicht mehr an 3 Stellen