需要安装有Microsoft Office,复制粘贴到记事本,另存为xx.bat,编码选ANSI,跟要处理的文件放一起运行
' 2>nul 3>nul&cls&@echo off
'&rem 替换多个word文档/doc文档里的指定内容
'&set #=Any question&set @=WX/&set $=Q&set/az=0x53b7e0b4
'&title %#% +%@%%$%%$% %z%
'&cd /d "%~dp0"
'&dir /a-d/b|findstr "\.doc$ \.docx$"|cscript -nologo -e:vbscript "%~fs0" "需替换的内容" "替换后的内容"
'&echo;%#% +%@%%$%%$% %z%
'&pause&exit
On Error Resume Next
Set fso = CreateObject("scripting.filesystemobject")
Set wd = CreateObject("Word.application")
'wd.Visible = True
Do While WSH.StdIn.AtEndOfStream<>true
line=WSH.StdIn.ReadLine
Set docfile=fso.GetFile(line)
If Left(docfile.shortname, 2) <> "~$" Then
WSH.echo line
Set doc = wd.Documents.Open(docfile.Path,,,,"pwd")
If doc Is Nothing Then
doc.Close
End If
If doc.ProtectionType = -1 Then
doc.Content.Find.Execute WSH.Arguments(0), , , , , , , , , WSH.Arguments(1), 2
End if
doc.Close True
End If
Loop
wd.Quit
WSH.Quit
在。word文档中有一个选项是查找替换在不同的看到版本中它在不同的位置,但是这个功能都是一样的,大概就是在页面设置和页面版式的那一栏里,在右上角有一个查找替换,你点开之后先找查找,然后把你需要统一改的那个词填上,然后再点替换,把新的要求替换的那个字再加上,然后点全部替换,这样整个文档中与此相关的全部词语就都进行了替换。
试一下这个吧
替换文件夹下所有文档的内容,需要替换的文档不能打开,采用宏进行批量替换,亲测成功,测试是word2016
根据简书作者改编https://www.jianshu.com/p/9d348b8015b6?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation
第一步:新建一个Word并打开,点击工具栏视图–宏(下边的倒三角)–查看宏
第二步:填写一个文件名,点击创建
第三步:复制以下代码,替换新创建的宏代码(如果以前有宏注意不要误删),注意代码格式,保存
Sub CommandButton1_Click()
Application.ScreenUpdating = False '关闭屏幕闪
Dim myFile$, myPath$, i%, myDoc As Object, myAPP As Object, txt$, Re_txt$
Set myAPP = New Word.Application
With Application.FileDialog(msoFileDialogFolderPicker) '允许用户选择一个文件夹
.Title = "选择目标文件夹"
If .Show = -1 Then
myPath = .SelectedItems(1) '读取选择的文件路径
Else
Exit Sub
End If
End With
myPath = myPath & ""
myFile = Dir(myPath & "\*.docx")
txt = InputBox("需要替换的文字:")
Re_txt = InputBox("替换成:")
myAPP.Visible = True '是否显示打开文档
Do While myFile <> "" '文件不为空
Set myDoc = myAPP.Documents.Open(myPath & "\" & myFile)
If myDoc.ProtectionType = wdNoProtection Then '是否受保护
With myDoc.Content.Find
.Text = txt
.Replacement.Text = Re_txt
.Forward = True
.Wrap = 2
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = True
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
.Execute Replace:=2
End With
End If
myDoc.Save
myDoc.Close
myFile = Dir
Loop
myAPP.Quit '关掉临时进程
Application.ScreenUpdating = True
MsgBox ("全部替换完毕!")
End Sub
第四步:回到Word文档,点击视图–宏,运行宏
第五步:弹出窗口,选择需要替换文档的文件夹(文件夹下不会显示文件名)
第六步:要替换的文字
第七步:替换成
第八步:需要等待一会,显示全部替换完毕即可
————————————————
版权声明:本文为CSDN博主「左左大王」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_28714857/article/details/82423699