Was ich tun muss, ist eine Reihe von Textdateien (CSV, alle in einem Verzeichnis) und erstellen Sie Dateien, bei denen die gesamte Ausgabe Zeile um Zeile umgekehrt wird, aber die Kopfzeile bei die Spitze, anstatt unten zu enden.Verwenden einer forEach-Schleife, um csv-Dateien umzukehren
Ich kann eine Datei (namentlich) nehmen und die erste Zeile kopieren und eine neue Datei mit nur dieser Zeile erstellen. Dann nehme ich die Originaldatei minus die erste Zeile, lese sie in ein Array und kehre sie um. Ich füge das dann an die Datei an, die nur den Header hat. Es funktioniert gut, bis auf den Namen der Ausgabe, die ich gerne [file-REV.csv]
wäre, aber bis jetzt habe ich nur [file.csv-REV]
...
Also, sobald ich hatte das funktioniert, dachte ich, es war Zeit zu haben Das Programm findet alle csv
's im Verzeichnis und durchläuft sie, um für jedes eine umgekehrte Datei zu erstellen.
Das ist, was ich bisher habe:
cd c:\users\$([Environment]::UserName)\working
$Path = "c:\users\$([Environment]::UserName)\working\"
ForEach ($file in Get-ChildItem -Filter *.csv) {
Get-Content $file -totalcount 1 | Set-Content .\$file-REV.csv
$flip = (get-content | select -Skip 1)
[array]::Reverse($flip)
$flip | add-content "$file-REV.csv"
}
Hier ist die Botschaft, die ich erhalten, wenn Sie das Skript ausführen:
cmdlet Get-Content at command pipeline position 1
Supply values for the following parameters:
Path[0]:
Ich habe versucht, in den gesamten Weg zu bringen Get-Content -Path c:\users\jmurphy\working\
und dann Es beklagt sich, dass es nicht den gesamten Weg finden kann.
Die erste Sache, die ich empfehle, ist die Ausgabe von ["Get-Help Get-ChildItem -Detailed"] (https://msdn.microsoft.com/en-us/powershell/reference/5.1/microsoft. powershell.management/get-childitem) und ['Get-Help Get-Content-Detailliert'] (https://msdn.microsoft.com/en-us/powershell/reference/5.1/microsoft.powershell.management/get- Inhalt). Sie werden feststellen, dass das Cmdlet Get-Help einer der nützlichsten ist, wenn Sie sich mit der Verwendung von PowerShell vertraut machen. –
Ignorieren mögliche andere Probleme geben 'Get-Content' den Dateinamen aus der Schleife, die Sie '$ flip = (get-content $ datei | select -Skip 1)' '. _c: \ users \ jmurphy \ working_ ist ein Ordner .. keine Datei. – Matt
Danke euch beiden. Ich fange mit deinen Vorschlägen an. Ich wusste nicht einmal über Get-Help (MS-man ist wie es klingt). Vielen Dank! –