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

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

/ 猿问

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

守候你守候我 2019-05-25 15:21:59

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

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



查看完整描述

4 回答

?
忽然笑

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

我有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
?
狐的传说

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

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


查看完整回答
反对 回复 2019-05-25
?
慕雪6173905

刚刚使用过FART(“ F ind A nd R eplace T ext”命令行实用程序):
优秀的小免费软件,可在大量文件中进行文本替换。

安装文件位于SourceForge上

用法示例:

fart.exe -p -r -c -- C:\tools\perl-5.8.9\* @@APP_DIR@@ C:\tools

将预览替换以在此Perl发行版的文件中递归执行。

唯一的问题:FART网站图标不是很有品位,精致或优雅;)



查看完整回答
反对 回复 2019-05-25
?
慕雪9262066

替换 - 使用字符串替换替换子字符串描述:要使用另一个字符串替换子字符串,请使用字符串替换功能。这里显示的示例用字符串变量str中的“the”替换所有出现的“teh”拼写错误。


set str=teh cat in teh hat

echo.%str%

set str=%str:teh=the%

echo.%str%

脚本输出:


teh cat in teh hat

the cat in the hat

参考:http: //www.dostips.com/DtTipsStringManipulation.php#Snippets.Replace


查看完整回答
反对 回复 2019-05-25

添加回答

回复

举报

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