我需要從現有表中創建一個新的 CSV,但我需要在之前添加一列并且沒有標題,或者單元格內的資料周圍沒有引號。我注意到如果我打開檔案,保存它,引號被洗掉,但這個檔案將在每晚凌晨 1 點轉到外部 Windows 資源管理器中的示例示例
$NewCSV = '\\server2\export.csv'
$Assets = (import-csv '\\server1\PCList.csv' | Where-Object {$_.PCNumber -ne ''}).PCnumber | ForEach-Object {
[pscustomobject]@{
'h1' = 'IT Support'
'h2' = $_ '.acme.net'
}
} | Export-Csv $NewCSV
我已經看到了 Outfile 的用法,但這打破了我的專欄
uj5u.com熱心網友回復:
如果您正在運行PowerShell (Core) 7 :
... |
ConvertTo-Csv -UseQuotes Never |
Select-Object -Skip 1 |
Set-Content $NewCSV
如果您正在運行Windows PowerShell:
... |
ConvertTo-Csv -NoTypeInformation |
Select-Object -Skip 1 |
ForEach-Object { $_ -replace '"' } |
Set-Content $NewCSV
筆記:
ConvertTo-Csv是 的記憶體等價物Export-Csv,因此允許通過 跳過代表 CSV 標頭的第一個輸出物件Select-Object。
Set-Content然后可用于將結果保存到檔案中。使用它的-Encoding引數來控制字符編碼。- 僅在 Windows PowerShell 中,
-NoTypeInformation還需要抑制在標題行之前發出的通常不需要的型別注釋行;也是如此Export-Csv。
- 僅在 Windows PowerShell 中,
以下適用于
ConvertTo-Csv和Export-Csv:- 在Windows PowerShell中,所有 CSV 列值總是雙引號(包含在 中
"..."),但在PowerShell (Core) 7 中,您可以通過引數控制雙引號行為-UseQuotes。此外,您可以通過引數選擇選擇性地對列(欄位)進行雙引號-QuoteFields。
- 在Windows PowerShell中,所有 CSV 列值總是雙引號(包含在 中
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/412541.html
標籤:
