我有一個包含名字和姓氏的 CSV 檔案。標題是“名“ 和 ”姓「。我可以顯示它,但它將名字和姓氏放在不同的行上。
問題:如何在 Powershell 中將輸出同時顯示在一行上。
此 PowerShell 將值分隔在不同的行上:
Import-Csv -Path C:\file1.csv | foreach {echo $_.'First Name’ $_.'Last Name’}
答案1
使用$( ) 子表達式運算符以嵌套方式,可以連接多個子表達式結果並將它們作為另一個子表達式中的群組傳回,根據需要返回輸出(即"$($(mutlivalue1) $(multivalue2))" == "val1 val2"
)。
電源外殼
Import-Csv -Path "C:\file1.csv" | %{"$($_."First Name") $($_."Last Name")"};
支持資源
Operators $( ) @( ) :: &
$( ) 子表達式運算子。
使用子表達式傳回特定的 特性一個物體的。與簡單的括號不同,子表達式可以包含多個 ;分號 ;分開;聲明。
每個語句的輸出都會影響子表達式的輸出。對於單一結果,它將傳回一個標量。對於多個結果,它將傳回一個陣列。
子表達式可讓您在一行中計算表達式的結果並對其進行操作;不需要中間變數:
答案2
Import-Csv -Path C:\file1.csv | foreach {'{0} {1}' -f $_.'First Name’, $_.'Last Name’ | Write-host}
答案3
我建議你多種方法:
#method 0 : on one row by you can keep your columns (result are list of objects)
import-csv "C:\temp\yooo.txt" | select "First Name", "Last Name"
#method 1 : create new column in select (result are list of objects)
import-csv "C:\temp\yooo.txt" | select @{Name="Identity";Expression={"{0} {1}" -f $_."First Name", $_."Last Name"}}
#method 2 : create new column in loop (result are list of string)
import-csv "C:\temp\yooo.txt" | %{"{0} {1}" -f $_."First Name", $_."Last Name"}
#method 3 : create new object in loop (result are list of objects)
import-csv "C:\temp\yooo.txt" | %{
[pscustomobject]@{
FirstName=$_."First Name"
LastName=$_."Last Name"
}
}