我可以更改檔案中文本的列順序:
001 AALTON Alan 25 Every Street
002 BROWN James 101 Browns Road
003 CAMPBELL Colin 57 Camp Avenue
使用以下方法在姓氏之前列出名字:
$Data = Import-CSV C:\test\test6\sqlInsertList.txt -Delimiter ' ' -Header "Col1","Col2","Col3","Col4","Col5","Col6"
# attempt to output with Surname/FirstName (columns 2 & 3) reversed
[array]$fileStore = $Data | Select-Object Col1,Col3,Col2,Col4,Col5,Col6 | Export-CSV C:\test\test6\newSqlInsertList.txt -append
輸出為:
"Col1","Col3","Col2","Col4","Col5","Col6"
"001","Alan","AALTON","25","Every","Street"
"002","James","BROWN","101","Browns","Road"
"003","Colin","CAMPBELL","57","Camp","Avenue"
但是,如果我要將此輸出處理為字串格式,我會試圖擴展每個Colx屬性,例如:
$Data = Import-CSV C:\test\test6\sqlInsertList.txt -Delimiter ' ' -Header "Col1","Col2","Col3","Col4","Col5","Col6"
# attempt to output with Surname/FirstName (columns 2 & 3) reversed
[array]$fileStore = $Data | Select-Object Col1,Col3,Col2,Col4,Col5,Col6
# first attempt worked
$test = $fileStore[1] | Select-Object -ExpandProperty Col1
$test = ' '
$test = $fileStore[1] | Select-Object -ExpandProperty Col3
$test = ' '
$test = $fileStore[1] | Select-Object -ExpandProperty Col2
$test = ' '
$test = $fileStore[1] | Select-Object -ExpandProperty Col4
$test = ' '
$test = $fileStore[1] | Select-Object -ExpandProperty Col5
$test = ' '
$test = $fileStore[1] | Select-Object -ExpandProperty Col6
$test
輸出:
002 James BROWN 101 Browns Road
我無法將物件存盤Colx在陣列中以回圈遍歷它們。所以到目前為止我的解決方案很麻煩,而且看起來也不對。
解決方案似乎是:
- 以某種方式攔截
Export-CSV C:\test\test6\newSqlInsertList.txt -append以洗掉雙引號和逗號 - 或者找到一種比我展示的更好的方式來擴展所有列屬性的方法
如果有人有建議,我將不勝感激。
uj5u.com熱心網友回復:
這是一種獲取所需內容的簡單方法,老實說,我不明白為什么要以所需的方式匯出輸出而不是正確的 Csv。
$headers = "A","B","C","D","E","F"
$newOrder = "A","C","B","D","E","F"
Import-CSV C:\test\test6\sqlInsertList.txt -Delimiter ' ' -Header $headers | ForEach-Object {
$(foreach($i in $newOrder) { $_.$i }) -join ' '
} | Set-Content newfile.someextension
給出代碼正在做什么的背景關系:
- 外部
ForEach-Object回圈正在列舉集合(Csv)中的每個物件。 - 內部
foreach回圈從集合中獲取每個物件的屬性值(按所需順序)。 - 內部回圈的所有輸出都被收集起來
$(...),在列舉完成后,所有捕獲的輸出都被一個空格' '與-joinoperator連接起來。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/488754.html
