Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst VBScript Zwei Arrays vergleichen und Abweichungen in drittes Array schreiben.

Mitglied: Quixtos

Quixtos (Level 1) - Jetzt verbinden

12.05.2009, aktualisiert 17:28 Uhr, 10272 Aufrufe, 12 Kommentare

Hallo,

ich habe ein VBScript das 2 Arrays miteinander vergleicht und die Abweichungen in ein drittes Array schreibt. Wenn Ihr den Code unten in durch euren Compiler schickt werdet Ihr auch sehen das alles soweit klappt.

Jetzt habe ich aber das Problem das ich die "Funktion" ('map no matched printer) 3 Zeile von unten, nach "End If > Next" abfagen möchte. Mache ich dies bekomme ich nur einen Wert aus dem dritten Array zurück anstatt 2 werte.

Villeicht könnt Ihr mir helfen. Danke

01.
arrPrt1 = Array ("IBM1","IBM2","IBM4","IBM3") ' from controlfile 
02.
arrPrt2 = Array ("\\server\IBM1","\\server\IBM2") ' from terminalserver 
03.
  
04.
prtSrv = "\\server\" 'hostname printserver 
05.
Dim found 
06.
f = 0 
07.
    For m = 0 To UBound(arrPrt1)    
08.
      For n = 0 To UBound(arrPrt2) 
09.
          If UCase(prtSrv & arrPrt1(m)) = UCase(arrPrt2(n)) Then 
10.
            wscript.Echo "Match: " & prtSrv & arrPrt1(m) & " <> " & arrPrt2(n) 'match 
11.
            found = false 
12.
            exit for 
13.
          Else 
14.
            wscript.Echo "No Match: " & prtSrv & arrPrt1(m) & " <> " & arrPrt2(n) 'no match 
15.
            found = true 
16.
          End If 
17.
      Next 
18.
       
19.
      If found Then           
20.
          ReDim Preserve arrFinalList(f) 
21.
          arrFinalList(f) = prtSrv & arrPrt1(m) 
22.
           f = f + 1 
23.
           arrPrt4 = arrFinalList(f-1) 
24.
           wscript.Echo "Map: " & arrPrt4 'map no matched printer 
25.
      End If 
26.
    Next
Mitglied: bastla
12.05.2009 um 17:15 Uhr
Hallo Quixtos und willkommen im Forum!

Leider ist mir nicht wirklich klar, welche 2 Werte Du erwarten würdest ...

Grüße
bastla

P.S.: Bitte verwende zum Posten von Code die entsprechende Formatierung.
Bitte warten ..
Mitglied: Quixtos
12.05.2009 um 17:27 Uhr
SRY habe jetzt den Beitrag nach Formatierungshilfe editiert. Sieht doch gleich besser aus

Naja im normalfall sollte er mir IBM3 und IBM 4 ausgeben. Er gibt mir aber immer nur die zuletzt verglichene aus:

IBM3, IBM4 = msgbox IBM4
IBM4, IBM3 = msgbox IBM3

wenn ich die Abfrage "wscript.Echo "Map: " & arrPrt4 'map no matched printer" nach "End If, Next" starte so wie hier z.B:

01.
arrPrt1 = Array ("IBM1","IBM2","IBM4","IBM3") ' from controlfile 
02.
arrPrt2 = Array ("\\server\IBM1","\\server\IBM2") ' from terminalserver 
03.
  
04.
prtSrv = "\\server\" 'hostname printserver 
05.
Dim found 
06.
f = 0 
07.
    For m = 0 To UBound(arrPrt1)    
08.
      For n = 0 To UBound(arrPrt2) 
09.
          If UCase(prtSrv & arrPrt1(m)) = UCase(arrPrt2(n)) Then 
10.
            wscript.Echo "Match: " & prtSrv & arrPrt1(m) & " <> " & arrPrt2(n) 'match 
11.
            found = false 
12.
            exit for 
13.
          Else 
14.
            wscript.Echo "No Match: " & prtSrv & arrPrt1(m) & " <> " & arrPrt2(n) 'no match 
15.
            found = true 
16.
          End If 
17.
      Next 
18.
       
19.
      If found Then           
20.
          ReDim Preserve arrFinalList(f) 
21.
          arrFinalList(f) = prtSrv & arrPrt1(m) 
22.
           f = f + 1 
23.
           arrPrt4 = arrFinalList(f-1) 
24.
      End If 
25.
    Next 
26.
    wscript.Echo "Map: " & arrPrt4 'map no matched printer
Starte ich die Abfrage "wscript.Echo "Map: " & arrPrt4 'map no matched printer" vor "End If, Next" bekomme ich beide Werte (also IBM3 + IBM4) zurück.
Bitte warten ..
Mitglied: bastla
12.05.2009 um 17:46 Uhr
Hallo Quixtos!

Meinst Du das so (als Ersatz für die Zeilen ab 19)?
01.
    If found Then           
02.
        ReDim Preserve arrFinalList(f) 
03.
        arrFinalList(f) = prtSrv & arrPrt1(m) 
04.
        arrPrt4 = arrPrt4 & "," & arrFinalList(f) 
05.
        f = f + 1 
06.
    End If 
07.
Next 
08.
WScript.Echo "Map: " & Mid(arrPrt4, 2) 'map no matched printer
Je eine Ausgabe für "Map ..." erhältst Du ja bei Deinem ursprünglichen Entwurf schon ...

Grüße
bastla
Bitte warten ..
Mitglied: Quixtos
12.05.2009 um 17:55 Uhr
Nein er soll mir 2 Msgboxen ausgeben. 1x mit IBM3 und 1x mit IBM4. Wenn ich das Script aber wie in meinem letzten Post starte bekomme ich nur eine msgbox mit IBM3 zurück.
Bitte warten ..
Mitglied: bastla
12.05.2009 um 18:00 Uhr
... und wenn Du das Script aus dem Eröffnungsbeitrag verwendest?

BTW: Komfortabler ist es (zumindest für mich), beim Testen "cscript" zu verwenden und keine MsgBoxes, sondern nur ein paar Zeilen in einem CMD-Fenster zu erhalten.
Bitte warten ..
Mitglied: Quixtos
12.05.2009 um 18:03 Uhr
bekomme ich 2 msgboxen. 1x mit IBM3 und 1x mit IBM4. Mein Problem ist aber das ich die Abfrage des arrPrt4 so brauche (ab Zeile 24):

01.
      End If 
02.
    Next 
03.
wscript.Echo "Map: " & arrPrt4 'map no matched printer
und nicht so:

01.
      wscript.Echo "Map: " & arrPrt4 'map no matched printer 
02.
   End If 
03.
Next
irgendwo hab ich da einen hund drinnen.
Bitte warten ..
Mitglied: bastla
12.05.2009 um 18:06 Uhr
... und warum? Vielleicht gehst Du mal kurz auf den Sinn der ganzen Aktion ein ...

Abgesehen davon - wozu dient eigentlich "arrFinalList"? Du könntest ja einfach
01.
For i = 0 To UBound(arrFinalList) 
02.
    WScript.Echo "Map: " & arrFinalList(i) 
03.
Next
ab Zeile 26 verwenden.
Bitte warten ..
Mitglied: Quixtos
12.05.2009 um 18:08 Uhr
Bingo!

Jetzt klappst so wie ich es mir vorstelle. Ich kann zwar VBScripten aber auf dem Gebiet Array Scripting bin ich wie man in Österreich so schön sagt ein "geistiges Nackerbatzerl".

Danke dir für deine Rasche und unbürokratische Hilfe.

Gruß
Bitte warten ..
Mitglied: bastla
12.05.2009 um 18:19 Uhr
Hallo Quixtos!

Freut mich, dass es jetzt passt.

Grüße
bastla
Bitte warten ..
Mitglied: Quixtos
12.05.2009 um 18:19 Uhr
Hintergrund warum dieses Script:

arr1 = Drucker die von einer Steuerdate extra eingelesen wurden (also vorgabe)

arr2 = Drucker die am Client schon verbunden sind (werden vorher ausgelesen)

jetzt möchte ich einen vergleich. Welche Drucker sind schon verbunden und welche drucker aus der Steuerdatei (arr1) nicht.

Hier kommt das arr3 ins Spiel. Wenn es einen Match von arr1 und arr2 gibt soll er das ignorieren. Gibt es keinen Match soll er diese Drucker oder auch Value in arr3 schreiben.

Habe ich die komplette prozedur durch verbinde ich die Drucker aus arr3 mittels add.windowsprinterconnection.

Sollte also so jetzt hinauen oder hast du eine bessere idee?
Bitte warten ..
Mitglied: bastla
12.05.2009 um 18:25 Uhr
Kannst Du wohl so lassen - und das arr3 bekommt dann auch einen Sinn ...

Grüße
bastla
Bitte warten ..
Mitglied: Quixtos
12.05.2009 um 18:26 Uhr
Danke dir

schönen Abend noch.
Bitte warten ..
Ähnliche Inhalte
Windows Server
Arrays vergleichen mit Powershell
gelöst Frage von SlainteMhathWindows Server5 Kommentare

Moin, ich sitze hier vor einen Problem mit Powershell, das mich schier wahnsinnig macht. Hintergrund: Die auf einem Windows ...

Datenbanken

Access Tabellen vergleichen, Abweichungen ausgeben

gelöst Frage von Dr.CornwallisDatenbanken6 Kommentare

Liebe Gemeinde, ist es mit einer Access Abfrage möglich, den Unterschied zweier Tabellen auszugeben(ohne VBA Code)? Ich hätte jetzt ...

Batch & Shell

PowerShell zwei Array mit unterschiedlichem Inhalt vergleichen

Frage von derhoeppiBatch & Shell7 Kommentare

Hallo, folgende Aufgabe muss ich in einem Skript zur Administration eines Storagesystems lösen. Mit einem Befehl lese ich die ...

Batch & Shell

Probleme mit Array in vbscript

gelöst Frage von BadFsaadKlBatch & Shell13 Kommentare

Hallo zusammen, ich habe mal wieder ein Problem, bei einem Vergleich / Update zweier Files mittels vbscript, und hohhe ...

Neue Wissensbeiträge
Microsoft
ARD-Doku - Das Microsoft Dilemma
Tipp von Knorkator vor 2 StundenMicrosoft2 Kommentare

Hallo zusammen, vor einigen Tagen lief in der ARD u.a. Reportage. Das Youtube Video dazu dürfte länger verfügbar sein. ...

Windows 10

Neue Sicherheitslücke in Windows 10 (Version 1709) durch Google öffentlich geworden

Information von kgborn vor 20 StundenWindows 10

Vor ein paar Tagen haben Googles Sicherheitsforscher vom Projekt Zero eine Sicherheitslücke im Edge-Browser publiziert. Jetzt wurde eine weitere ...

iOS
IOS 11.2.6 verfügbar
Information von sabines vor 1 TagiOS

Mit dem Update soll der Bug behoben werden, bei dem eine bestimmte Zeichenkette IOS zum Absturz gebracht hat.

Sicherheit
Sicherheitsrisiko: Die Krux mit 7-Zip
Information von kgborn vor 1 TagSicherheit8 Kommentare

Bei vielen Anwendern ist das Tool 7-Zip zum Entpacken von Archivdateien im Einsatz. Die Software ist kostenlos und steht ...

Heiß diskutierte Inhalte
Router & Routing
LANCOM VPN CLIENT einrichten
Frage von Finchen961988Router & Routing27 Kommentare

Hallo, ich habe ein Problem und hoffe ihr könnt mir helfen, wir haben einen Kunden der hat einen Speedport ...

Windows Server
AD DS findet Domäne nicht, behebbar?
Frage von schapitzWindows Server25 Kommentare

Guten Tag, ich habe bei einem Kunden ein Problem mit den AD DS. Umgebung ist folgende: Windows Server 2016 ...

LAN, WAN, Wireless
VPN Cisco ASA5505 PaloAlto PA-200
gelöst Frage von YannoschLAN, WAN, Wireless25 Kommentare

Hallo zusammen, ich würde gerne ein Site-to-Site VPN zwischen den beiden Standorten aufbauen. PaloAlto PA200 Internetanschluss Deutsche Telekom GK ...

SAN, NAS, DAS
Qnap TS-453S Pro - Anbindung Active Directory
Frage von JuckieSAN, NAS, DAS13 Kommentare

Hallo zusammen, ich habe hier eine Qnap TS-453S Pro die sich mal so absolut gar nicht in das Active ...