我正在使用 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(使用前将#替换为@)