如何使用 Windows 命令行环境查找和替换文件中的文本?

2024-05-08

我正在使用 Windows 命令行环境编写批处理文件脚本,并希望用另一个文件(例如“BAR”)更改文件中某些文本(例如“FOO”)的每次出现。最简单的方法是什么?有内置函数吗?


这里的很多答案都帮助我指明了正确的方向,但是没有一个适合我,所以我发布了我的解决方案。

我有 Windows 7,它内置了 PowerShell。这是我用来查找/替换文件中所有文本实例的脚本:

powershell -Command "(gc myFile.txt) -replace 'foo', 'bar' | Out-File -encoding ASCII myFile.txt"

解释一下:

  • powershell启动 Windows 7 中包含的 powershell.exe
  • -Command "... "是 powershell.exe 的命令行参数,包含要运行的命令
  • (gc myFile.txt)读取的内容myFile.txt (gc是缩写Get-Content命令)
  • -replace 'foo', 'bar'只需运行replace命令即可替换foo with bar
  • | Out-File myFile.txt将输出通过管道传输到文件myFile.txt
  • -encoding ASCII正如注释所指出的,防止将输出文件转录为 unicode

Powershell.exe 应该已经是您的 PATH 语句的一部分,但如果不是,您可以添加它。它在我的机器上的位置是C:\WINDOWS\system32\WindowsPowerShell\v1.0

Update
显然,现代 Windows 系统内置了 PowerShell,允许您直接使用

(Get-Content myFile.txt) -replace 'foo', 'bar' | Out-File -encoding ASCII myFile.txt
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Windows 命令行环境查找和替换文件中的文本? 的相关文章

随机推荐