我需要做的是獲取大量文本文件(csv,全部位於一個目錄中)並創建文件,其中整個輸出逐行反轉,但將標題保持在頂部而不是結束在底部。使用ForEach循環來反轉csv文件
我能夠接受一個文件(通過名稱),並複製第一行,並創建一個新的文件,只是在該行中。然後,我將原始文件減去第一行,將其讀入數組並將其反轉。然後我將它附加到只有標題的文件。它工作正常,除了輸出名稱,我想是[file-REV.csv]
,但到目前爲止,我只得到了[file.csv-REV]
...
所以,一旦我有這個工作,我認爲是時候了該程序會查找目錄中的所有csv
並通過它們循環,爲每個目錄創建一個反向文件。
這是我到目前爲止有:
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"
}
這裏是執行腳本時,我收到消息:
cmdlet Get-Content at command pipeline position 1
Supply values for the following parameters:
Path[0]:
我試圖把整個路徑Get-Content -Path c:\users\jmurphy\working\
然後它抱怨說它無法找到整個路徑。
我推薦的第一件事是看的輸出['獲取幫助獲取-ChildItem -Detailed'(https://msdn.microsoft.com/en-us/powershell/reference/5.1/microsoft。 powershell.management/get-childitem)和['獲取幫助獲取內容-Detailed'(https://msdn.microsoft.com/en-us/powershell/reference/5.1/microsoft.powershell.management/get-內容)。在學習如何使用PowerShell時,您會發現'Get-Help' cmdlet是最有用的一個。 –
忽略潛在的其他問題可以使'Get-Content'成爲您製作的$ loop =(get-content $ file | select -Skip 1)''的文件名。 _c:\ users \ jmurphy \ working_是一個文件夾..不是文件。 – Matt
謝謝你們倆。我會從你的建議開始。我甚至不知道Get-Help(MS-man就是這樣的)。謝謝! –