windelterrorist
Goto Top

Powershell If-Schleife funktioniert nicht

Hallo Admins


Arbeite gerade an einem kleinen Script... funktioniert aber nicht so, wie ich mir das vorstelle...


Mein Code:

switch ($auswahl = Read-Host "Drücken Sie die Nummer (1-4), um den gewünschten Menüpunkt auszuwählen") {
"1" {Write-Host "Menü 1 wurde ausgewählt." -f yellow}
"2" {Write-Host "Menü 2 wurde ausgewählt." -f yellow}
"3" {Write-Host "Menü 3 wurde ausgewählt." -f yellow}
"4" {Write-Host "Das Programm wird beendet ..." -f Yellow}
}

$pfad = "E:\test"
$date = Get-Date -Format d.MMMM.yyyy

if ($auswahl = "1") {
$ordnername = md "$pfad\menu1_$date"
}

elseif ($auswahl = "2") {
$ordnername = md "$pfad\menu2_$date"
}

elseif ($auswahl = "3") {
$ordnername = md "$pfad\menu3_$date"
}

else {
exit
}


Egal welchen Menüpunkt ich auswähle, er nimmt immer nur die 1. if-schleife, respektive erstellt den Ordner menu1_$date... verstehe nicht woran es liegt...


Gruss
windelterrorist

Content-Key: 290601

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

Printed on: April 16, 2024 at 10:04 o'clock

Mitglied: 122990
Solution 122990 Dec 10, 2015 updated at 15:56:32 (UTC)
Goto Top
Das Gleichheitszeichen ist kein Vergleichsoperator in Powershell sondern nur ein Zuweisungsoperator !!
Für Gleichheit benutzt man -eq
Lese bitte https://technet.microsoft.com/en-us/library/hh847732.aspx

Und wieso machst du IF-Abfragen obwohl du schon mit Switch unterscheidest was der User gewählt hat ??

Wohl noch Anfänger ?

So einen Kandidaten hatten wir hier schonmal
Verschachtelte IF Abfrage Powershell
Member: ITvortex
Solution ITvortex Dec 10, 2015 updated at 15:56:01 (UTC)
Goto Top
Hallo,

als was speicherst du deine Auswahl?
Als String?

String auf Gleicheit überprüfen machst du mit -eq
https://www.windowspro.de/script/vergleichsoperatoren-powershell-eq-lt-g ...

Und bitte if-Abfrage und keine if-schleife!

Liebe Grüße
ITvortex
Member: windelterrorist
windelterrorist Dec 10, 2015 updated at 15:57:38 (UTC)
Goto Top
Hallo grexit

Ja, noch Anfänger face-smile


Ich habe das nicht 1:1 von meinem Script übernommen, habe nur ein Beispiel gemacht... in meinem Script können die If-Abfragen noch gar nicht mit Switch abgefragt werden, da sich verschiedene If-Schleifen auf die Switch-Auswahl beziehen.

Aber danke für deine Hilfe, habe den Wald vor lauter Bäumen nicht mehr gesehen ... in meinem script kam -eq zuvor schon ca. 5 mal vor ...


Gruss
windelterrorist
Mitglied: 122990
122990 Dec 10, 2015 updated at 15:58:24 (UTC)
Goto Top
Zitat von @windelterrorist:
Ich habe das nicht 1:1 mit meinem Script übernommen, habe nur ein Beispiel gemacht...
Ja ja, das sagen sie hinterher alle face-big-smile

Schönen Feierabend wenns soweit ist.
Gruß grexit
Member: windelterrorist
windelterrorist Dec 10, 2015 at 15:58:42 (UTC)
Goto Top
Haha, wenn du meinst :D

Danke nochmal, schönen Abend