147596

Powershell if-Statement richtige Bedingung finden

Hallo zusammen

Mein Problem lautet wie folgt: Ich möchte in mein Powershell-Script ein if-statement einbauen, finde aber die richtige Bedingung nicht für mein Problem. So sieht mein Code momentan aus:
clear
#Tabelle wird asu einer .csv Datei ausgelesen
$Tabelle = Import-Csv -Path C:\Temp\Stempelungen\StempelungenJira.csv -Delimiter ";"  
#ein zähler wird gesetzt um die Zeilen der Datei auszulesen
$Zaehler = 0
#Tabellenlänge um die while-Schleife nur so oft zu wiederholen wie die Tabelle lang ist
$Tabellenlaenge = $Tabelle.count

#Eine bestimmte Zeile der Tabelle wird ausgelesen (immer die welche die Variable $Zaehler vorgibt), und in jeder Zeile die Werte in den Spalten 4-7 in Variablen gespeichert
$parts = $Tabelle[$zaehler] -split ';'  
$Name = $parts[4]
$Vorname = $parts[5]
$Stempeldatum = $parts[6]
$Zeit = $parts[7]

#whilfe-Schleife läuft so lange bis die ganze Tabelle verarbeitet wurde
While ($Zaehler -lt $Tabellenlaenge) {
    #Hier die Problemstelle um welche sich meine frage handelt
    if ($Name -eq xxxxxxx) {
        write-host richtig
    }
    else{
        write-host falsch
    }
    $Zaehler = $Zaehler + 1
}


Mein Ziel:
Ich möchte immer den Namenswert ($Name) mit dem Namenswert der nächsten Zeile vergleichen, doch mit welcher Formel komme ich auf diesen Wert?

Falls ihr noch Fragen habt oder mehr Infos benötigt liefere ich diese gerne. Vielen Dank schonmal im voraus.
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 650199

Url: https://administrator.de/forum/powershell-if-statement-richtige-bedingung-finden-650199.html

Ausgedruckt am: 10.06.2025 um 15:06 Uhr

NordicMike
Lösung NordicMike 10.02.2021 aktualisiert um 16:14:18 Uhr
Goto Top
Du hast die Variablen Name, Vorname usw. nur einmal definiert. Der Wert bleibt für immer. Dann beginnst du das Zählen, allerdings ändern sich die Variablen nicht mehr. Du musst nach jedem erhöhen des Zählers die Variablen neu beschreiben:

#whilfe-Schleife läuft so lange bis die ganze Tabelle verarbeitet wurde
While ($Zaehler -lt $Tabellenlaenge) {

$parts = $Tabelle[$zaehler] -split ';'  
$Name = $parts[4]
$Vorname = $parts[5]
$Stempeldatum = $parts[6]
$Zeit = $parts[7]

    #Hier die Problemstelle um welche sich meine frage handelt
    if ($Name -eq xxxxxxx) {
        write-host richtig
    }
    else{
        write-host falsch
    }
    $Zaehler = $Zaehler + 1
}
147596
147596 10.02.2021 um 16:16:21 Uhr
Goto Top
Danke, ich bin mit dem Script noch ziemlich am Anfang, darum werden bestimmt noch einige Fehler vorhanden sein.
NordicMike
NordicMike 10.02.2021 aktualisiert um 16:19:46 Uhr
Goto Top
Kein Ding. Dann markier jedoch dies Thema als gelöst und mach ein Neues auf. Wenn du hier etwas darunter schreibst, werden es andere Leser nicht mehr sehen, weil das Thema nach unten rutscht.