我有一個定期運行的 PowerShell 腳本。部分腳本會創建 csv 檔案,我稍后會使用這些檔案將資料匯入各種軟體程式。
資料位于變數 $enrolledStudents 中,型別為 System.Array
我使用以下內容匯出部分資料:
$enrolledStudents | Select-Object @{Name="SFIRST";Expression={$_.FirstName}},`
@{Name="SLAST";Expression={$_.LastName}},`
@{Name="SGRADE";Expression={[int]$_.GradeLevel}},`
@{Name="SBIRTHDAY";Expression={$_.Birthdate }} |
Export-CSV C:\temp\Exported.csv -notype -Append
匯出看起來像:
"SFIRST","SLAST","SGRADE","SBIRTHDAY"
"John","Doe","6"," 2009-11-22 "
我上傳資料的軟體需要日期格式為“11/22/2009”,所以它看起來像:“SFIRST”,“SLAST”,“SGRADE”,“SBIRTHDAY”
“John”,“Doe”,“6 “”,“ 2009 年 11 月 22 日”
有沒有辦法在 Select-Object 中做到這一點?
uj5u.com熱心網友回復:
肯定的事。只需應用一點物件輸入魔法......
$enrolledStudents | Select-Object `
@{Name="SFIRST";Expression={$_.FirstName}},`
@{Name="SLAST";Expression={$_.LastName}},`
@{Name="SGRADE";Expression={[int]$_.GradeLevel}},`
@{Name="SBIRTHDAY";Expression={([datetime]$_.Birthdate).ToString('MM/dd/yyyy')}} |
Export-CSV C:\temp\Exported.csv -notype -Append
編輯:更正了日期格式語法
uj5u.com熱心網友回復:
我現在有兩個可行的解決方案,并想添加一個注釋。兩者都給出相同的輸出。
# Thanks mclayton
$enrolledStudents | Select-Object @{Name="SFIRST";Expression={$_.FirstName}},`
@{Name="SLAST";Expression={$_.LastName}},`
@{Name="SGRADE";Expression={[int]$_.GradeLevel}},`
@{Name="SBIRTHDAY";Expression={ "{1}/{2}/{0}" -f $_.Birthdate.split("-")}} |
Export-CSV C:\temp\test-Renaissance.csv -notype -Append
和
# Thanks Dennis
$enrolledStudents | Select-Object @{Name="SFIRST";Expression={$_.FirstName}},`
@{Name="SLAST";Expression={$_.LastName}},`
@{Name="SGRADE";Expression={[int]$_.GradeLevel}},`
@{Name="SBIRTHDAY";Expression={([DateTime]$_.Birthdate).ToString('MM/dd/yyyy')}} |
Export-CSV C:\temp\test-Renaissance.csv -notype -Append
我將使用第二個,因為對我來說,它更容易閱讀。就我而言,擁有[DateTime] $__.Birthdate
非常重要。我發現了許多使用 .ToString 的示例,但沒有遇到使用 [datetime]$_ 的示例
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/521959.html
