如何使用 PowerShell 連接文件

  1. 使用 Get-ContentSet-Content 來串接檔案
  2. 使用 Add-Content 來串接檔案
  3. 使用 Out-File 來串接檔案
  4. 使用串接運算子來串接檔案
  5. 結論
如何使用 PowerShell 連接文件

PowerShell 允許您執行不同的檔案操作,例如建立、複製、移動、刪除、查看和重新命名檔案。另一個重要特徵是可以將多個檔案的內容串接成一個檔案。

在本文中,我們將探討四種將多個檔案的內容輕鬆合併成一個檔案的方法:使用 Get-ContentSet-Content、使用 Add-Content cmdlet、使用 Out-File cmdlet,以及使用串接運算子。

使用 Get-ContentSet-Content 來串接檔案

此方法利用 Get-Content 來讀取多個檔案(file1.txtfile2.txt)的內容,然後將合併的內容傳送到 Set-Content 來寫入新檔案(concatenated.txt)。

Set-Content 是 PowerShell 中的一個字串處理 cmdlet。它寫入新內容或替換檔案中的內容。

file1.txt:

This is a file1 text file.

file2.txt:

This is a file2 text file.

程式碼:

Get-Content file1.txt, file2.txt | Set-Content concatenated.txt

在此命令中,Get-Content file1.txt, file2.txt 讀取 file1.txtfile2.txt 的內容。

然後,當我們看到垂直線 | 時,這是管道運算子,將輸出(file1.txtfile2.txt 的內容)傳遞到命令的下一部分。

最後,Set-Content concatenated.txt 命令將串接檔案的內容設置到名為 concatenated.txt 的新檔案中。

使用 Get-Content 檢查 concatenated.txt 檔案的內容。使用以下命令範本。

Get-Content concatenated.txt

Get-Content 命令讀取指定檔案的內容並將其輸出到控制台。如果 concatenated.txt 位於當前目錄中,則該命令將顯示其內容。

如果 concatenated.txt 不在當前目錄中,請務必將其替換為檔案的實際路徑。

在接下來將討論的以下幾種方法中,我們也將使用 Get-Content 來檢查和驗證檔案內容是否正確。

輸出:

This is a file1 text file.
This is a file2 text file.

它將顯示兩個檔案的合併內容,並為每個檔案自動添加新行。

使用 Add-Content 來串接檔案

在這裡,Get-Content 用於分別讀取每個檔案的內容。然後 Add-Content cmdlet 將內容附加到指定的檔案(concatenated2.txt)。這個過程對每個檔案重複進行。

file1.txt:

This is a file1 text file.

file2.txt:

This is a file2 text file.

程式碼:

Get-Content file1.txt | Add-Content -Path concatenated2.txt
Get-Content file2.txt | Add-Content -Path concatenated2.txt

這個命令讀取 file1.txtfile2.txt 的內容並將它們附加到現有的 concatenated2.txt 檔案的末尾。

|(管道)運算子將兩個檔案的合併內容傳遞給 Add-Content cmdlet。

注意:請確保檔案路徑正確,並且您擁有從 file1.txtfile2.txt 讀取和寫入 concatenated2.txt 的必要許可權。

使用 Get-Content 檢查 concatenated2.txt 檔案的內容。

Get-Content concatenated2.txt

輸出:

This is a file1 text file.
This is a file2 text file.

它將顯示兩個檔案的合併內容,並為每個檔案自動添加新行。

使用 Out-File 來串接檔案

Out-File cmdlet 將輸出發送到檔案。如果該檔案不存在,它會在指定路徑中創建一個新檔案。

要使用 Out-File 串接檔案,您需要使用 Get-Content cmdlet 獲取檔案的內容。通常,Get-Content 會在控制台顯示輸出。

您必須將其輸出通過管道傳遞給 Out-File,以便將輸出發送到指定的檔案。以下範例將兩個檔案的內容合併到 concatenated3.txt

file1.txt:

This is a file1 text file.

file2.txt:

This is a file2 text file.

程式碼:

Get-Content file1.txt, file2.txt | Out-File concatenated3.txt

上述命令將用 file1.txtfile2.txt 的合併內容覆蓋 concatenated3.txt 的內容。如果 concatenated3.txt 不存在,將會被創建。

為了與前一個方法進行比較,Add-Content 會附加到現有檔案,而 Out-File 則會覆蓋它。

運行以下命令以驗證 concatenated3.txt 檔案的內容。

Get-Content concatenated3.txt

輸出:

This is a test1 file.
This is a test2 file.

如您所見,test1.txttest2.txt 的內容都已複製到 concatenated3.txt

如果您想要串接目錄中的所有 .txt 檔案,可以使用 *.txt 來選擇目錄中所有具有 .txt 擴展名的檔案。

Get-Content *.txt | Out-File concatenated3.txt

使用串接運算子來串接檔案

在此方法中,+ 運算子在將內容傳遞給 Set-Content 以便寫入目標檔案(concatenated4.txt)之前,會將 file1.txtfile2.txt 的內容串接起來。

file1.txt:

This is a file1 text file.

file2.txt:

This is a file2 text file.

程式碼:

(Get-Content file1.txt -Raw) + "`r`n" + (Get-Content file2.txt -Raw) | Set-Content concatenated4.txt

+ "`r`n" + 部分用於串接字串。

在此情況下,它在 file1.txtfile2.txt 的內容之間添加了一個回車 ("r") 和一個換行 ("n") 字元。這確保了兩個檔案的內容在合併時會顯示在不同的行上。

使用 Get-Content 檢查 concatenated4.txt 檔案的內容。

Get-Content concatenated4.txt

輸出:

This is a file1 text file.
This is a file2 text file.

它將顯示兩個檔案的合併內容,並透過 + "`r`n" + 支援為每個檔案添加新行。

結論

在 PowerShell 中串接檔案是一個多功能的任務,選擇方法取決於您的具體需求。

無論您是偏好 Get-ContentSet-Content 管道的簡單性,Add-ContentOut-File 的明確性,或是串接運算子的簡潔語法,PowerShell 都提供多種選擇來滿足您的需求。

了解這些方法使您能夠有效地操作和管理各種情況下的檔案內容。

Enjoying our tutorials? Subscribe to DelftStack on YouTube to support us in creating more high-quality video guides. Subscribe
作者: Rohan Timalsina
Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website

相關文章 - PowerShell File