Jump to content

Powershell: Inhalt ersetzen in CSV


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Guten Morgen,

 

ich benötige einen kleinen Denkanstoß.

Ein Skript zieht via PowerShell eine Benutzerliste aus dem Verzeichnisdienst und erzeugt eine CSV-Datei.

 

Jetzt möchte ich über eine Vergleichstabelle Inhalte in der CSV-Datei anpassen (z.B. PagerNo 1 = Bremen, PagerNo2 = Hamburg, PagerNo3 = Düsseldorf).

 

Habt ihr eine schnelle Idee, wie ich das am geschicktesten durchführe?

Link zu diesem Kommentar

Bin schon weiter gekommen,

hab dennoch ein Problem. Siehe Skript-Snippet unten.

 

Er ersetzt den  Inhalt einfach nicht, obwohl in der Spalte 'sn' die Nachnamen entsprechend geführt werden. Hab ich einen Denkfehler?

 

$IT_Gruppe = @(
            'Meyer',
            'Schulze')

 

(Get-Content $original_file) | Foreach-Object {
    if($_.sn -contains $IT_Gruppe)
        {$_.company = 'Test'}
    } | Set-Content $original_file

Link zu diesem Kommentar

Kannst Du bitte den Code hier im Forum als Code formatieren?

 

Du musst die Werte nicht nur anpassen, Du musst sie auch einmal ausgeben, damit sie in der Pipeline landen können. Wenn Du die anderen Werte auch in der Ausgabe haben willst, musst Du auch noch einen else-Zweig hinzufügen. ;-) 

 

Also quasi sowas hier ... 

 

Import-Csv -Path $original_file -Delimiter ";" -Encoding UTF8 | 
ForEach-Object {
    if ($_.sn -match $IT_Gruppe) {
        $_.company = 'Test'
        $_
    }
    else {
        $_
    }
} | 
Export-CSv $destination_file -NoTypeInformation

 

bearbeitet von BOfH_666
Link zu diesem Kommentar
vor 38 Minuten schrieb Garant:

Allerdings klappt es nicht mit der Variablenliste, sondern nur beim Vergleichen, wenn ich ein Wert dahinterlege. Muss ich das ggf. anders aufbauen?

 

Häh?

 

Mal benutzt Du "-contains", in Deinem letzten Code-Schnipsel hast Du "-match" benutzt ... und dann postest Du nur ein Teil Deines Codes ... bitte im Hinterkopf behalten - wir können Deinen Bildschirm nicht sehen und wir wir können nicht in Deinen Kopf gucken.  :achtung: ;-) 

 

Wenn Du eine Liste mit Elementen hast und benutzt "-contains", um zu prüfen, ob ein gegebener Wert in dieser Liste enthalten ist, muss dieser Wert exakt einem Element entsprechen, um einen positiven Rückgabewert zu erhalten.

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...