经常会遇上要在大量文件里查找和替换某个单词的情况,有没有什么简单的办法呢?
如果说是纯文本文件,即直接可以用记事本打开可以看到文件内容的都算文本文件。如果打开有乱七八槽的文字,就是某种专有格式了。对于纯文本文件,Windows早在DOS时代就提供了find命令。
Win+R键输入cmd就可以打开Dos窗口,输入find /N /I "a" *.txt|more, 这就代表查找当前目录下所有txt文件里包含"a" , 并忽略大小写。more的意思是分页,在结果中按空格键就可以翻页,不然查找结果太多的话就看不完全部结果

如果要替换的话,安装一个NotePad++, ctrl+f键打开搜索替换对话框

按箭头所示输入你需要的信息
查找结果如下

确实无误后,重新Ctrl+f键,在替换为那里输入你要替换的部分,点“在文件中替换”即可。注意做好备份
那如果是Word文件怎么办呢?我们用Word自带的宏解决,新建一个宏

然后输入以下程序
Sub Search()
Dim objDoc As Document
Dim strFile As String
Dim strFolder As String
Dim strFindText As String
Dim strReplaceText As String
strFolder = InputBox("请输入目录路径:")
strFile = Dir(strFolder & "" & "*.docx", vbNormal)
strFindText = InputBox("请输入要查找的单词:")
strReplaceText = InputBox("请输入要替换的单词:")
While strFile <> ""
Set objDoc = Documents.Open(FileName:=strFolder & "" & strFile)
With objDoc
With Selection
.HomeKey Unit:=wdStory
With Selection.Find
.Text = strFindText
.Replacement.Text = strReplaceText
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
End With
objDoc.Save
objDoc.Close
strFile = Dir()
End With
Wend
End Sub
然后点击运行后,输入目录地址,要查找的字符串,要替换的字符串即可。注意做好备份

网友评论