在 PowerShell 中匯入/匯出 CSV 檔案


在本文中,我們將使用 PowerShell 中的 CSV 檔案,這被認為是處理資料最有效的方法之一。

我們已為本文考慮以下幾點。

  • 使用 PowerShell 將資料匯出到 CSV 檔案。

  • 使用 PowerShell 從 CSV 檔案匯入資料。

讓我們開始吧。

使用 PowerShell 將資料匯出到 CSV 檔案

  • 使用直接命令輸出

要將資料匯出到 PowerShell 中的 csv 檔案,我們可以使用**Out-File**,這是將輸出儲存到檔案的常用 cmdlet。以下命令將在 csv 檔案中獲取前 10 個 CPU 使用率最高的程序。

示例

Get-Process | Sort-Object CPU -Descending | Select -First 10 |
Out-File C:\Temp\Top10Procs.csv

輸出

讓我們檢查 csv 檔案。

如您所見,cmdlet 可以檢索輸出,但輸出位於單個列中,這降低了使用者的可讀性,也不是處理資料的有效方法。

PowerShell 提供了另一個內建 cmdlet,**Export-CSV**,它將資料轉儲到 csv 檔案中。我們必須為此命令選擇屬性,因為某些命令在輸出匯出到 csv 檔案時會公開所有屬性。

示例

Get-Process | Sort-Object CPU -Descending | Select -First 10 | `
   Select Name, id, CPU, WorkingSet | Export-Csv C:\Temp\Top10Procs.csv

輸出

如果您注意到,輸出顯示了型別資訊(以黃色突出顯示)。如果我們不需要它,則在**Export-Csv** cmdlet 的末尾新增**-NoTypeInformation** 引數。

如果您正在處理一個需要將資料追加到 csv 檔案的指令碼,則使用**-Append** 引數。例如,如下所示,我們在 foreach 迴圈中使用了上述相同命令來追加資料。

$procs = Get-Process | Sort-Object CPU -Descending | Select -First 10 | `
   Select Name, id, CPU, WorkingSet
foreach($proc in $procs){
   $proc | Export-Csv C:\Temp\Top10Procs.csv -NoTypeInformation -Append
}
  • 使用 PSCustomObject

您還可以從雜湊表或 PSCustomObject 匯出 csv 檔案。例如,

[PSCustomObject]@{
   Name = 'OneDrive'
   ID = '1001'
   Memory_Usage = '20%'
   CPU_Usage = '10%'
} | Export-Csv C:\Temp\SingleProcessInfo.csv -NoTypeInformation

從 CSV 檔案匯入資料

從 csv 檔案匯入資料與從 csv 檔案匯出資料一樣簡單。要從 csv 檔案匯入資料,我們需要使用內建 cmdlet **Import-CSV**。

讓我們考慮前面建立的前 10 個高 CPU 利用率程序的檔案的示例。以下命令將匯入該 csv 檔案。

示例

Import-Csv C:\Temp\Top10Procs.csv

輸出

我們可以對其執行與在管道輸出上執行的常規操作。

Import-Csv C:\Temp\Top10Procs.csv | Select -First 2


要選擇特定屬性,

Import-Csv C:\Temp\Top10Procs.csv | Select Name, ID


我們可以使用管道對 csv 輸出的資料進行排序。

Import-Csv C:\Temp\Top10Procs.csv | Sort-Object -Property Name

過濾特定資料,

示例

Import-Csv C:\Temp\Top10Procs.csv | where{$_.Name -eq "OneDrive"}

輸出

更新於: 2022年2月18日

8K+ 次瀏覽

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.