需要知道如何使用PowerShell读取文本文件并替换文本?这就是我们所谓的PowerShell读取文本文件。
不用再找了!这篇博文就是为您准备的。在本文的最后,我将向您展示一个我编写的函数,可以让您的生活变得更轻松。
用PowerShell替换文件中的文本可以分为三个步骤。
- 读取文件
- 查找并替换字符串
- 将更改写入文件。
读取文件
首先需要读取文件。让我们首先使用Set-Content
命令来创建一个文件,以便我们有一个可以使用的文件。
要读取此文件,您可以使用Get-Content
命令。您可以通过将文本文件路径提供给Path
参数来读取文件,如下所示。
查找并替换字符串
现在,我们将文件内容以字符串的形式保存在内存中,我们需要搜索并替换字符串。一种方法是使用-replace
运算符。这个PowerShell运算符可以找到一个字符串并将其替换为另一个字符串。
使用示例文件内容,我们可以将搜索字符串foo与替换字符串bar一起使用,这将使文件内容变为foo foo baz。
写入文件
現在我們已經將新檔案內容保存在$newContent
中,我們現在需要將這個新內容寫回檔案。一種方法是使用Set-Content
命令。
Set-Content
命令將一個檔案的所有內容替換為新的值。
當你使用Get-Content
讀取C:\file.txt檔案時,你會看到它現在包含了新的內容。
處理打開的檔案處理程序
你之前所做的步驟在大多數情況下都有效。然而,在現實世界中,情況並不總是如此。
你會發現,你偶爾需要處理那些已經被 PowerShell 打開的檔案。這會阻止你將新的內容寫回檔案。
為了解決這種打開的檔案處理程序問題,我創建了一個簡單的工作流程,允許你先在磁碟上創建一個臨時的文字檔,然後刪除原始檔案,最後重新命名臨時檔案。
以下是它的工作原理的示例:
下面是我建立的一個名為Find-InTextFile
的函數的示例,它使用了這種方法,結合了在檔案中查找(而不是替換)文字的能力。
此函數還使用了更強大的正則表達式語法來查找字符串。你會發現,正則表達式將允許你使用特殊字符如單引號、特殊字符等進行更靈活的搜索。
您還可以看到,我使用了一個foreach循環來同時處理多個文件。如果您有一堆文件需要處理,這很方便。
資源
有關 Set-Content
命令的更多信息,請查看 Set-Content:使用 PowerShell 寫入文件的方法 或者另一種將內容寫入文件的方法,即 Out-File
命令。
Source:
https://adamtheautomator.com/powershell-read-text-file/