So öffnen Sie die Datei (über einen Dateipfad), der sich in einer anderen Datei befindet: Powershell


0

Ich habe eine Datei mit dem Namen 'main_file.txt' (c: temp \ main_file.txt), die eine einzelne Zeile des Dateipfads einer anderen Datei wie unten enthält.

\\mynewfolder\folder\sub_file.csv 

Hier im folgenden Code muss ich auf die obige Datei sub_file.csv (\ mynewfolder \ folder \ sub_file.csv) zugreifen und den Inhalt verwenden, um einen Prozess auszuführen. Wie man meine unterhalb der ersten Codezeile ändern , den Inhalt des für den Zugriff auf sub_file.csv , die als Pfad im Inneren des main_file.txt verfügbar ist .

$txt = Get-Content "how to get the contents of sub_file.csv" | Out-String
{
...do some process with the contents of sub_file.csv..
...
...
}    

Kannst du bitte helfen.


1
$txt = c:\temp\main_file.txt | % { "Do stuff" }?
SimonS

Etwas wie das? a = Get-Content -Path C:\temp\main_file.txt Import-Csv -Path $aWas versuchen Sie mit der CSV-Datei zu tun?
Smeerpijp

Ich frage mich, warum Sie das tun, aber Sie können auch gleich den Pfad der CSV-Datei in den import-csvCmd-Let einfügen .
Smeerpijp

Antworten:


1

Versuche dies:

$handle = Get-Content c:\temp\main_file.txt
$content = Import-Csv $handle
$content | Format-Table

Die Variable $ content sollte ein Array von PSObjects enthalten, wobei jedes Objekt einen Datensatz aus der CSV-Datei darstellt. Ich habe den letzten Befehl nur als Beispiel eingefügt, um etwas mit dem Inhalt zu tun, nachdem ich ihn gelesen habe.

Wenn Ihre CSV-Daten sehr groß sind, möchten Sie möglicherweise nicht alle Daten in eine Variable einlesen, bevor Sie sie verarbeiten. Möglicherweise möchten Sie stattdessen die Ausgabe von Import-Csv in eine Pipeline einspeisen und die Datensätze einzeln verarbeiten.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.