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運行即可