2016-11-10 2 views
0

Ich habe eine CSV-Datei mit fünf Spalten. Die letzte Spalte ist die Klassenstufe. Was ich tun möchte, ist den Wert dieser Spalte basierend auf dem Grad der Stufe zu ändern. Zum Beispiel, wenn der Grad der Stufe 12 ist, möchte ich das auf 2016, 11 bis 2017 ändern, und so weiter.Ändern Sie den Wert in der Spalte mit Powershell

Update: Ich habe es halb Arbeit bekommen die unter Verwendung von:

Get-Content users.csv | ForEach-Object -Process {$_ -replace '12','2016'} | Set-Content users1.csv 

Was passiert, wenn die Schüler-ID ein 12 darin hat, die auch bis 2016. Beispiel geändert wird wäre 120.045 bekommt Änderung zu 20160045

+0

Was haben Sie bisher versucht? Teilen Sie auch eine Beispiel-CSV ** und ** das erwartete Ergebnis. –

Antwort

0

können Sie den cSV-Import, schlingt es in einer foreach verwenden, $ _ (diese) Betreiber und dann ist Export

Somesthing wie in cSV:

# import CSV 
$list = import-csv P:\ath\to\file.csv -Delimiter ";" -Encoding Standard 
# % means foreach 
$list | % { 
    # The grades is the key for each line 
    # the first line of your csv represent the keys you can use 
    # e.g. first colum: Name | Grade | Class 
    # $_.Name | $_.Grade | $_.Class are your keys for every entry (2nd line and above) 

    # here you can work with your grades an do what you want 
    if($_.Grade -eq 11){ 
    # set a new value to the grade in the actual line 
    $_.Grade = 2016 
    } 
} 

# now export the new list into csv 
export-csv P:\ath\to\new.csv -Delimiter ";" -NoTypeInformation 

Das sollte ein Grund sein, mit zu arbeiten.

Greetz Eldo.O

+0

Ich bekomme Cmdlet Export-Csv an der Befehls-Pipeline-Position 1 Geben Sie Werte für die folgenden Parameter: InputObject: –

0

Eldo Sie Code hat super funktioniert. Ich habe die letzte Zeile ändern von:

export-csv P:\ath\to\new.csv -Delimiter ";" -NoTypeInformation 

zu

$list | Export-Csv P:\ath\to\new.csv -Delimiter "," -NoTypeInformation 

Ich war auch in der Lage, weitere hinzuzufügen, wenn Aussagen genau zu erreichen, was ich brauchte.

+0

oh - ich habe vergessen: D - Ich habe nicht den Code in Runspace, direkt in den Anwaser Codet: P Aber schön zu sehen, dass es für dich arbeitet. –

Verwandte Themen