2016-05-18 7 views
0

Ich habe eine importierte CSV ($csv) mit mehreren Überschriften, von denen einer "Zielserver" ist. In der CSV diese Spalte hat Werte Device1, device2 usw.Ersetzen Wert in bestimmten Spalte in CSV aus Hashtable

Ich habe auch eine Hash-Tabelle ($hash) mit Name/Wert-Paare des Namens (device1) - Wert (fqdn1) usw.

So würde Ich mag an Ersetzen Sie das "device1" in CSV mit dem korrekten Wert aus der Hash-Tabelle, z. B .:

foreach($row in $csv) 
    if($hash[$_.Name]){ 
    $row."Target Server"= $hash[$_.Value] 
    } 

Werde ich warm?

Antwort

2

Verwenden Sie die ContainsKey() Methode, um zu sehen, ob die Hash-Tabelle einen Eintrag mit einem bestimmten Namen enthält/Schlüssel:

foreach($row in $csv) { 
    if($hash.ContainsKey($row.'Target Server')) { 
     $row.'Target Server' = $hash[$row.'Target Server'] 
    } 
} 
+0

Dank Mathias, erhalte ich Fehler: Ausnahme „ContainsKey“ mit „1“ Argumente Aufruf (e): "Schlüssel kann nicht null sein. Parametername: Schlüssel" Wie referenziere ich die spezifische CSV Spalte nach Namen? – Archie

+0

Eigentlich funktionierte es, ich übergab $ csv aus dem Speicher während der Laufzeit von einer vorherigen Operation. Als ich das vorherige Ergebnis in eine .csv exportierte und es zu $ ​​csv importierte, funktionierte es. – Archie

Verwandte Themen