使用 PowerShell 替换文件中的文本
PowerShell 是一个强大的工具,可以执行不同的文件和文件夹操作。它允许你创建、复制、删除、移动、重命名和查看系统上的文件和文件夹。
PowerShell 有一些有用的 cmdlet,可以读取、写入和替换文件中的内容。本教程将介绍使用 PowerShell 替换文件中出现的每个字符串的不同方法。
在 PowerShell 中使用 Get-Content
和 Set-Content
替换文件中每个出现的字符串
Get-Content
获取指定路径中的项目内容,例如文件中的文本。Set-Content
是一个字符串处理 cmdlet,允许你编写新内容或替换文件中的现有内容。
你可以使用 Get-Content
和 Set-Content
cmdlet 替换文件中出现的每个字符串。我们在目录 (C:\New
) 中有一个文本文件 (test.txt
),其内容如下。
Get-Content C:\New\test.txt
输出:
Welcome to Linux tutorials.
Linux is free.
Linux is powerful.
现在,让我们借助 -Replace
参数在 test.txt
文件中用 PowerShell
替换字符串 Linux
的所有出现。Get-Content
周围需要括号 ()
。
(Get-Content C:\New\test.txt) -Replace 'Linux', 'PowerShell' | Set-Content C:\New\test.txt
然后查看 test.txt
文件的内容以验证更改。
Get-Content C:\New\test.txt
如你所见,Linux
已成功替换为 PowerShell
。
输出:
Welcome to PowerShell tutorials.
PowerShell is free.
PowerShell is powerful.
此方法使用字符串数组来查找和替换文件中的字符串,因为 Get-Content
cmdlet 返回一个数组。如果 Get-Content
返回单个字符串,则更容易替换字符串。
你可以使用 -Raw
参数,如下所示。
(Get-Content C:\New\test.txt -Raw) -Replace 'Linux', 'PowerShell' | Set-Content C:\New\test.txt
在 PowerShell 中使用 File
类替换文件中每个出现的字符串
File
类为常见操作提供静态方法,例如创建、复制、移动、打开、删除和附加到单个文件。使用 File
类的 Replace()
方法替换指定文件的内容。
Get-Content C:\New\python.txt
Find the best Python tutorials and learn Python easily from DelftStack.
这是一个使用 File
类方法替换文件中每次出现的字符串的示例。
$string = [System.IO.File]::ReadAllText("C:\New\python.txt").Replace("Python","JavaScript")
[System.IO.File]::WriteAllText("C:\New\python.txt", $string)
ReadAllText()
方法打开一个文本文件,读取该文件中的所有文本,然后关闭该文件。
WriteAllText()
方法创建一个新文件,将特定字符串写入文件,然后关闭文件。如果目标文件已存在于该位置,则会被覆盖。
验证在 C:\New\python.txt
中所做的更改。
Get-Content C:\New\python.txt
输出:
Find the best JavaScript tutorials and learn JavaScript easily from DelftStack.
使用 PowerShell 替换多个文件中每个出现的字符串
上述方法替换单个文件中的字符串;有时,你可能需要替换多个文件中的相同字符串。在这种情况下,你可以使用以下命令替换多个文件中每次出现的指定字符串。
Get-ChildItem 'C:\New\*.txt' | ForEach {
(Get-Content $_) | ForEach {$_ -Replace 'weekly', 'monthly'} | Set-Content $_
}
Get-ChildItem
cmdlet 获取指定目录 C:\New
中的文件。星号 *
通配符指定所有文件扩展名为 .txt
的文件。
在 ForEach
循环中,你可以对数组中的每个项目运行一个或多个命令。
你可以使用 -Recurse
参数替换指定目录及其子目录中文件中的字符串。
Get-ChildItem 'C:\New\*.txt' -Recurse | ForEach {
(Get-Content $_) | ForEach {$_ -Replace 'weekly', 'monthly'} | Set-Content $_
}
相关文章
在 PowerShell 中提取子字符串
发布时间:2024/02/07 浏览次数:162 分类:编程语言
-
本文将讨论如何使用 PowerShell 的字符串库有效地提取字符串中的子字符串。作为 Windows 管理员的一个典型场景是找出一种方法来在称为子字符串的字符串中查找特定的文本片段
在 PowerShell 中连接字符串
发布时间:2024/02/07 浏览次数:174 分类:编程语言
-
本文将展示我们可以在 PowerShell 中使用的所有可能的方法来连接字符串和变量。PowerShell 使用不同的运算符和函数来实现字符串连接。
在 PowerShell 中将字符串转换为整数
发布时间:2024/02/07 浏览次数:131 分类:编程语言
-
本教程将教你在 PowerShell 中将字符串转换为整数。在 PowerShell 中使用 [int] 将字符串转换为整数
在 PowerShell 中将字符串拆分为单独的变量
发布时间:2024/02/07 浏览次数:140 分类:编程语言
-
本教程将介绍在 PowerShell 中将字符串拆分为单独的变量。字符串是用于表示文本的字符序列。它是 PowerShell 中常见的数据类型之一。
在 PowerShell 中获取变量的字符串长度
发布时间:2024/02/07 浏览次数:113 分类:编程语言
-
本教程将教你在 PowerShell 中获取变量的字符串长度。字符串是 PowerShell 中最常用的数据类型之一;它包含字符或文本的序列。你可以使用单引号或双引号定义字符串。
在 PowerShell 中查找子字符串的位置
发布时间:2024/02/07 浏览次数:84 分类:编程语言
-
本教程将教你在 PowerShell 中查找子字符串的位置。PowerShell 中的字符串和子字符串 字符串是 PowerShell 中使用的常见数据类型。
在 PowerShell 中比较两个字符串对象的内容
发布时间:2024/02/07 浏览次数:65 分类:编程语言
-
本教程将教你比较 PowerShell 中两个字符串对象的内容。字符串是 PowerShell 中最常用的数据类型之一。
使用 PowerShell 删除服务
发布时间:2024/02/07 浏览次数:56 分类:编程语言
-
本文告诉我们如何使用命令行和 PowerShell 在 Windows 10 及更早版本中删除孤立服务。
通过 PowerShell 命令在任务计划程序中运行计划任务
发布时间:2024/02/06 浏览次数:134 分类:编程语言
-
本教程将教你使用 PowerShell 命令在任务计划程序中启动计划任务。