为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

守候你守候我 2019-05-25 15:21:59
如何使用Windows命令行环境查找和替换文件中的文本?我正在使用Windows命令行环境编写批处理文件脚本,并希望将文件中某些文本(例如“FOO”)的每次出现更改为另一个(例如“BAR”)。最简单的方法是什么?任何内置功能?
查看完整描述

4 回答

?
忽然笑

TA贡献1806条经验 获得超5个赞

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

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

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

解释一下:

  • powershell 启动powershell.exe,它包含在Windows 7中

  • -Command "... " 是powershell.exe的命令行arg,包含要运行的命令

  • (gc myFile.txt)读取内容myFile.txtgcGet-Content命令的缩写)

  • -replace 'foo', 'bar'只需运行replace命令替换foobar

  • | Out-File myFile.txt 将输出传递给文件 myFile.txt

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


查看完整回答
反对 回复 2019-05-25
?
狐的传说

TA贡献1804条经验 获得超3个赞

如果您使用的是支持.Net 2.0的Windows版本,我会替换您的shell。 PowerShell通过命令行为您提供.Net的全部功能。内置了许多命令行开关。以下示例将解决您的问题。我正在使用命令的全名,有更短的别名,但这给了你一些谷歌的东西。

(Get-Content test.txt) | ForEach-Object { $_ -replace "foo", "bar" } | Set-Content test2.txt


查看完整回答
反对 回复 2019-05-25
  • 4 回答
  • 0 关注
  • 3986 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信