invisan
Goto Top

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

Content-ID: 335400

Url: https://administrator.de/contentid/335400

Ausgedruckt am: 25.11.2024 um 12:11 Uhr

rubberman
Lösung rubberman 18.04.2017 aktualisiert um 13:26:41 Uhr
Goto Top
Hallo Invisan,

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
em-pie
em-pie 18.04.2017 aktualisiert um 14:33:11 Uhr
Goto Top
Moin,

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
Invisan
Invisan 18.04.2017 um 13:33:39 Uhr
Goto Top
Hi em-pie,

danke für den Vorschlag.
Leider läuft das Skript in den Error Ungültige Zuweisung 'strcomp'.
Mit der Lösung von rubberman und dir zusammen klappt es aber.

Herzlichen Dank.
Invisan
Invisan 18.04.2017 aktualisiert um 13:34:56 Uhr
Goto Top
Top danke dir rubberman.
Auf die Idee mit Mid bin ich garnicht gekommen ^^"
em-pie
em-pie 18.04.2017 um 14:31:48 Uhr
Goto Top
Es fehlte ein (habe es oben ergänzt)
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