如何使用 PowerShell 連接文件

PowerShell 允許您執行不同的檔案操作,例如建立、複製、移動、刪除、查看和重新命名檔案。另一個重要特徵是可以將多個檔案的內容串接成一個檔案。
在本文中,我們將探討四種將多個檔案的內容輕鬆合併成一個檔案的方法:使用 Get-Content
和 Set-Content
、使用 Add-Content
cmdlet、使用 Out-File
cmdlet,以及使用串接運算子。
使用 Get-Content
和 Set-Content
來串接檔案
此方法利用 Get-Content
來讀取多個檔案(file1.txt
和 file2.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.txt
和 file2.txt
的內容。
然後,當我們看到垂直線 |
時,這是管道運算子,將輸出(file1.txt
和 file2.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.txt
和 file2.txt
的內容並將它們附加到現有的 concatenated2.txt
檔案的末尾。
|
(管道)運算子將兩個檔案的合併內容傳遞給 Add-Content
cmdlet。
注意:請確保檔案路徑正確,並且您擁有從
file1.txt
和file2.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.txt
和 file2.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.txt
和 test2.txt
的內容都已複製到 concatenated3.txt
。
如果您想要串接目錄中的所有 .txt
檔案,可以使用 *.txt
來選擇目錄中所有具有 .txt
擴展名的檔案。
Get-Content *.txt | Out-File concatenated3.txt
使用串接運算子來串接檔案
在此方法中,+
運算子在將內容傳遞給 Set-Content
以便寫入目標檔案(concatenated4.txt
)之前,會將 file1.txt
和 file2.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.txt
和 file2.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-Content
和 Set-Content
管道的簡單性,Add-Content
和 Out-File
的明確性,或是串接運算子的簡潔語法,PowerShell 都提供多種選擇來滿足您的需求。
了解這些方法使您能夠有效地操作和管理各種情況下的檔案內容。