如何使用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.txt
(gc
是Get-Content
命令的缩写)-replace 'foo', 'bar'
只需运行replace命令替换foo
为bar
| Out-File myFile.txt
将输出传递给文件myFile.txt
Powershell.exe应该已经成为PATH语句的一部分,但如果没有,您可以添加它。它在我的机器上的位置是C:\WINDOWS\system32\WindowsPowerShell\v1.0
狐的传说
TA贡献1804条经验 获得超3个赞
如果您使用的是支持.Net 2.0的Windows版本,我会替换您的shell。 PowerShell通过命令行为您提供.Net的全部功能。内置了许多命令行开关。以下示例将解决您的问题。我正在使用命令的全名,有更短的别名,但这给了你一些谷歌的东西。
(Get-Content test.txt) | ForEach-Object { $_ -replace "foo", "bar" } | Set-Content test2.txt
- 4 回答
- 0 关注
- 4134 浏览
添加回答
举报
0/150
提交
取消