Sonntag, Dezember 15, 2019

Import-CSV “ und “ Foreach

Ich habe eine große kommagetrennte CSV-Liste mit IP-Adressen von meinem Netzwerk, ich möchte zum ausführen von Abfragen. Beispiel meiner CSV-input:

172.168.0.1,172.168.0.2,172.168.0.3,172.168.0.4

Etc….

Wenn ich den folgenden code zum testen für die Ausgabe:

$filepath = "c:\scripts\servers.csv" 
$servers = Import-CSV $filepath -delimiter "," 

Foreach ($server in $servers) {
     write-host $server

}

Bekomme ich keine Ausgabe, ich denke, es ist, weil es keine Header angegeben. Ich kann natürlich ein workaround und öffnen Sie die CSV-Datei und geben Sie in allen Kopfzeilen. Gibt es andere Wege um dies zu lösen?

3 Kommentare

  1. 22

    Kannst du den Header on the fly “ (keine Angabe erforderlich Trennzeichen ist das Trennzeichen ein Komma):

    Import-CSV $filepath -Header IP1,IP2,IP3,IP4 | Foreach-Object{
       Write-Host $_.IP1
       Write-Host $_.IP2
       ...
    }
    • Ich erwarte, dass der OP hat eine Datei, wo die ganzen ip ‚ s sind auf der gleichen Linie (zumindest das ist, wie ich das zu deuten sein etc…)
    • Vielen Dank für Ihre Antwort, ich wirklich zu schätzen. Leider ist der CSV-enthält über 100 IP-Adressen alle auf der gleichen Linie, so muss ich angeben 100-Header?
    • Ich erstellte 1-header namens „IP“ und alle IP-Adressen unter es. Workaround, aber es funktioniert jetzt.
  2. 0
    $IP_Array = (Get-Content test2.csv)[0].split(",")
    foreach ( $IP in $IP_Array){
        $IP
    }

    Get-content mit dem Namen gibt ein array von Zeichenfolgen für jede Zeile.

    Auf der ersten saite nur, dass ich es teilen, basierend auf““. Dumping es in $IP_Array.

    $IP_Array = (Get-Content test2.csv)[0].split(",")
    foreach ( $IP in $IP_Array){
      if ($IP -eq "2.2.2.2") {
        Write-Host "Found $IP"
      }
    }
    • Während dieser arbeiten würde, für eine einfache CSV-Dateien, wird es scheitern, wo Kommas sind Teil des Feldes Werte.
    • Warum wäre es ein Komma als Teil des Feldes name in eine CSV-Datei?
  3. 0

    Lösung die änderung Trennzeichen.

    Inhalt der csv-Datei -> bitte Beachten Sie .. Auch Raum und in Wert

    Werte sind 6 Niederländische Wort aap,noot,mies,Piet, Gijs Jan

    Col1;Col2;Col3
    
    a,ap;noo,t;mi es
    
    P,iet;G ,ijs;Ja ,n
    
    
    
    $csv = Import-Csv C:\TejaCopy.csv -Delimiter ';' 

    Antwort:

    Write-Host $csv
    @{Col1=a,ap; Col2=noo,t; Col3=mi es} @{Col1=P,iet; Col2=G ,ijs; Col3=Ja ,n}

    Es ist möglich eine CSV-Datei und verwenden Sie andere Trennzeichen für die einzelnen Spalten.

    Funktionierte es bei meinem Skript 🙂

Kostenlose Online-Tests

Letzte Fragen

Tun ItemView löst Blase?

Ich habe eine CompositeView für eine Tabelle. Ich habe Trigger-set in der Kind-ItemView für jede Zeile... var TableRow = Marionette.ItemView.extend({ tagName:...

Wie kann ich untersuchen, WCF was 400 bad request über GET?

Die folgenden WCF-endpoint funktioniert gut mit dem WCF test client: AssetList ListFlaggedAssets(short processCode, string platform, string endpoint = "null", string portalId = "null", int...

Bei der Verwendung von UUIDs, sollte ich auch mit AUTO_INCREMENT?

Wir bauen eine neue web-app, die eine offline-iPad - /Android-app-version auf einer Reihe von lokalen Geräten, die Einsätze mit neuen Daten. Als solche benötigen...

Actionscript-Objekt, das verschiedene Eigenschaften

Wie kann ich die Anzahl der Eigenschaften in einer generischen Actionscript-Objekt? (Wie die Array-Länge) InformationsquelleAutor Fragsworth | 2011-01-15

Wie plot mehrere Graphen und nutzen Sie die Navigations-Taste im [matplotlib]

Die neueste version von matplotlib erstellt automatisch Navigations-buttons unter den graph. Aber die Beispiele, die ich finden alles im Internet zeigen, wie erstellen Sie...