get_word_paragraphs.vbs
' 获取命令行参数
If WScript.Arguments.Count = 0 ThenWScript.Quit 1
End If' 获取 Word 文档路径
docPath = WScript.Arguments(0)' 创建 Word 应用程序对象
Set objWord = CreateObject("Word.Application")
objWord.Visible = False' 打开 Word 文档
On Error Resume Next
Set objDoc = objWord.Documents.Open(docPath)
If Err.Number <> 0 ThenWScript.Echo "无法打开文档: " & docPathobjWord.QuitWScript.Quit 1
End If
On Error GoTo 0' 查找!!!和 AAAA 所在的段落
Dim foundParagraphs
Set foundParagraphs = CreateObject("Scripting.Dictionary")Dim paraIndex
paraIndex = 1 ' 初始化段落索引计数器For Each para In objDoc.ParagraphsparaText = Trim(para.Range.Text) ' 去除首尾空白字符If InStr(paraText, "!!!") > 0 Or InStr(paraText, "AAAA") > 0 ThenfoundParagraphs.Add paraIndex, paraTextEnd IfparaIndex = paraIndex + 1 ' 计数器加 1
Next' 关闭文档和 Word 应用程序
objDoc.Close
objWord.Quit' 输出文档路径和找到的段落
If foundParagraphs.Count > 0 ThenFor Each key In foundParagraphs.KeysWScript.Echo foundParagraphs(key)Next
Else
End If
bat文件
@echo off
chcp 65001
setlocal enabledelayedexpansionREM 指定要处理的Word文档所在的目录
set "sourceDir=C:\Users\Admin\Desktop\文档"REM 指定输出结果的文本文件
set "outputFile=word_paragraphs_result.txt"REM 如果输出文件已存在,先删除它
if exist "%outputFile%" del "%outputFile%"
set /p="[" <nul
REM 遍历指定目录下的所有Word文档
for %%f in ("%sourceDir%\*.docx" "%sourceDir%\*.doc") do (REM 调用VBScript脚本处理每个文档,并将结果追加到输出文件中cscript //nologo get_word_paragraphs.vbs "%%f" >> "%outputFile%"set /p="." <nul
)
echo ]
echo 处理完成,结果保存在 %outputFile%
pause>nul
endlocal
查找的是包含!!!和AAAA的段落,段落使用回车分段,需要安装MS-OFFICE 2007及以上版本,点击bat运行即可