Verschachtelte IF Abfrage Powershell

Mitglied: Hanuta

Hanuta (Level 2) - Jetzt verbinden

23.11.2015, aktualisiert 16:56 Uhr, 2206 Aufrufe, 19 Kommentare

Hallo Zusammen,

habe ein Programm, das es in verschiedenen Versionen gibt...

4.5.0
4.5.3
4.6.2
4.6.3

Das Programm soll überall auf 4.6.3 hochgepached werden.
Nun möchte ich eine Fallabfrage mit IF machen, also wenn 4.5.0. installiert ist, starte install.exe 4.5.3, wenn 4.5.3 installiert ist Starte 4.6.2 usw..
Die version wird über eine .ini Datei herausgelesen und in eine .txt geschrieben.
Habe folgenden Skript bisher gebastelt:

IF($TxtFile=4.5.0) {Start-Process "C:\update-v4.5.0-v4.5.3.exe"}
elseif($TxtFile = 4.5.3) {Start-Process "C:\update-v4.5.3-v4.6.2.exe"}
elseif($TxtFile = 4.6.2) {Start-Process "C:\update-v4.6.2-v4.6.3.exe"}
else {Write-Host "Update-Finish"}

Der Skript zeigt mir kein Fehler...aber starten tut er auch nix :-/ face-confused

Bitte um Hilfe

Vielen Dank :-) face-smile

VG

Hanuta
Mitglied: 114757
114757 (Level 4)
LÖSUNG 23.11.2015, aktualisiert 28.12.2015
Moin,
kein Wunder das Gleichheitszeichen ist kein Vergleichsoperator in Powershell sondern ein Zuweisungsoperator ..., dafür gibt es -eq , -ne usw.
about_Comparison_Operators

Übersichtlicher gehts so:

Gruß jodel32
Bitte warten ..
Mitglied: Hanuta
23.11.2015 um 13:52 Uhr
Hallo und danke für die schnelle Antwort :-) face-smile

das Skript funktioniert super mit einem Festen Laufwerksbuchstaben :-) face-smile

Gibt es auch eine Möglichkeit, wenn das alles auf einem USB-Stick ist einen variablen Laufwerksbuchstaben einzubauen ?

Habe jetzt mal rumprobiert, aber leider kann er dann die .exe nicht mehr finden :-/ face-confused


VG

Hanuta
Bitte warten ..
Mitglied: 114757
114757 (Level 4)
23.11.2015, aktualisiert um 15:01 Uhr
Den Laufwerksbuchstaben von dem das Script aus aufgerufen wurde bekommst du so:
PS 2.0
oder
Ab PS 3.0:

Bitte warten ..
Mitglied: Hanuta
23.11.2015 um 15:05 Uhr
Super, hat funktioniert :-) face-smile

hab ich jetzt noch die möglichkeit die Abfrage in eine Foreach Schleife zu setzen ?

Klappt aber noch net so ganz -.- (bin noch Anfänger in PS^^)





VG

Hanuta
Bitte warten ..
Mitglied: 114757
114757 (Level 4)
23.11.2015, aktualisiert um 16:00 Uhr
Zeile 2 weglassen ...(du weist ja sonst der Schleifenvariablen immer den selben Wert zu x-))
Bitte warten ..
Mitglied: Hanuta
23.11.2015 um 16:21 Uhr
hmm...jetzt bekomm ich die Fehlermeldung: Arryindex wurde als NULL ausgewertet


Zeile:7 Zeichen:14 -.-^^

VG
Bitte warten ..
Mitglied: 114757
114757 (Level 4)
23.11.2015, aktualisiert um 16:24 Uhr
Zitat von @Hanuta:

hmm...jetzt bekomm ich die Fehlermeldung: Arryindex wurde als NULL ausgewertet

Tja uns fehlt hier ja dein Scriptkontext Mister :-( face-sad
Deine Zeile 7 wird wohl kaum hier die Zeile 7 sein so wie du es hier gepostet hast ....
Ein bißchen Köpfchen musst du schon benutzen, nicht gleich bei jedem Fehler aufgeben, sondern die Meldung mal hinterfragen.
Bitte warten ..
Mitglied: Hanuta
23.11.2015 um 16:24 Uhr

Bitte warten ..
Mitglied: 114757
114757 (Level 4)
23.11.2015, aktualisiert um 16:26 Uhr
Und wo definierst du $Versions ????????
Nix da davon :-( face-sad
Du hast doch nur eine Version in der Textdatei oder was jetzt??
Bitte warten ..
Mitglied: Hanuta
23.11.2015 um 16:26 Uhr
Naja, er versucht das Array einzulesen....bekommt aber nur einen NULL-Wert zurück...das Ergibt doch keinen Sinn? Er liest ja oben die Arrays ein :-/ face-confused
Bitte warten ..
Mitglied: 114757
114757 (Level 4)
23.11.2015, aktualisiert um 16:28 Uhr
Zitat von @Hanuta:

Naja, er versucht das Array einzulesen....bekommt aber nur einen NULL-Wert zurück...das Ergibt doch keinen Sinn? Er liest ja oben die Arrays ein :-/ face-confused
Quatsch mit Soße wo soll da ein Array sein ?? Da ist keins, ich glaube du hast meinen Code falsch interpretiert !
Bei einer Versionsnummer aus deiner Texdatei brauchst du keine Schleife!
Bitte warten ..
Mitglied: Hanuta
23.11.2015 um 16:28 Uhr
jop, habe nur die Version in einer .txt datei
Bitte warten ..
Mitglied: 114757
114757 (Level 4)
23.11.2015, aktualisiert um 16:29 Uhr
Bei einer Versionsnummer aus deiner Texdatei brauchst du keine Schleife! Da ist ja das gute ;-) face-wink
Bitte warten ..
Mitglied: Hanuta
23.11.2015 um 16:29 Uhr
Okay, nochmal gaaaanz langsam von vorne....

Die Version wird abgefragt, dementsprechend werden die Versionen den install.exe gesetzt gibt es eine möglichkeit das auch als Schleife einzulesen ?
Bitte warten ..
Mitglied: Hanuta
23.11.2015 um 16:30 Uhr
Ja, wenn die version von 5.0 auf 5.3 hochgepached wurde dann soll sie von 5.3 auf 6.2 und so weiter gepached werden....bis zum Schluss...dann muss das doch alles in eine Große Schleife wo er immer wieder von vorne anfängt, oder ?
Bitte warten ..
Mitglied: 114757
114757 (Level 4)
23.11.2015, aktualisiert um 16:33 Uhr
ach so das musst du ja auch erwähnen, das war mir nicht klar ...
Lass das mit der Schleife und rufe einfach das Skript aus sich heraus erneut auf und lese die Versionsnummer direkt aus dem System aus ...
Bitte warten ..
Mitglied: Hanuta
23.11.2015 um 16:35 Uhr
okay, dann kommt gleich die nächste Frage.... Das ist eine .ini Datei, wie kann ich dann dort nur die Versionsnr einlesen ? Habe sowas noch nie gemacht....


Bitte warten ..
Mitglied: 114757
114757 (Level 4)
23.11.2015, aktualisiert um 18:12 Uhr
Zitat von @Hanuta:

okay, dann kommt gleich die nächste Frage.... Das ist eine .ini Datei, wie kann ich dann dort nur die Versionsnr einlesen ? Habe sowas noch nie gemacht....
Hast doch oben geschrieben das du das gemacht hast ?? *Koppschüttel*

Get-IniContent


Bitte warten ..
Mitglied: Hanuta
23.11.2015 um 16:48 Uhr
eingelesen und dann im Textdokument bearbeitet
Bitte warten ..
Heiß diskutierte Inhalte
Windows Server
Aufgabenplanung PowerShell Skript startet nicht
shooanVor 1 TagFrageWindows Server36 Kommentare

Hallo Zusammen, ich habe ein Skript bekommen das ich gerne so einstellen will das dieses beim Start des Exchangeservers aktiviert werden soll. Ein Ausführung ...

Internet
Webcam oder IPcam aus dem Internet erreichbar?
dertowaVor 1 TagFrageInternet17 Kommentare

Hallo zusammen, mal eine spezielle Frage, vielleicht kann jemand einen Dienst aufgrund guter Erfahrung empfehlen. Die Hündin einer guten Bekannten bekommt Nachwuchs und dafür ...

Windows Netzwerk
Computername erneut vergeben?
gelöst malkieVor 1 TagFrageWindows Netzwerk10 Kommentare

Guten Morgen, wir haben in der Firma Computernamen nach dem Muster: PC-Abteilung-Nummer (PC-IT-1) So, aktuell habe ich mal gelernt ganz früher, dass man den ...

LAN, WAN, Wireless
Unterschiedliche IP-Adressbereiche im Netzwerk
achkleinVor 16 StundenFrageLAN, WAN, Wireless17 Kommentare

Hallo, ich stehe vor einem Problem mit der WLAN-Verbindung zum Router (Fritzbox Cable 6490). Das verbundene Notebook hat die Adresse 192.168.0.164, Gateway ist 192.168.0.149: ...

Backup
Zusätzlicher Backupschutz gegen Ransomware Befall
staybbVor 1 TagFrageBackup4 Kommentare

Hallo zusammen, wir nutzen Veeam Backup & Replication als Backup für unsere Server und Files. Es werden immer on-side beim Kunden Backups auf einem ...

Router & Routing
Verkaufe apu4.d4 Set
pasu69Vor 1 TagAllgemeinRouter & Routing11 Kommentare

Guten Abend zusammen, ich hätte ein APU4.D4 Bundle abzugeben, dass ich erst Anfang März gekauft habe. Leider ist die Hardware tatsächlich zu schwach, um ...

Hardware
Temperaturüberwachung Raum
ingo1988Vor 1 TagFrageHardware8 Kommentare

Hallo, ich brauche eure Hilfe. Ich möchte gerne eine Temperaturüberwachung installieren. Es sollte über Wifi funktionieren, ist aber kein Muss. Außerdem soll eine Alarmbenachrichtigung ...

Microsoft Office
E-Mail kommt nicht an
gelöst HeinrichMVor 1 TagFrageMicrosoft Office10 Kommentare

Hallo zusammen, in der letzten Zeit häufen sich die Meldungen, dass E-Mails nicht ankommen. Es ist kein Muster zu erkennen. Mal kommt eine Mail ...