通过批处理命令,将word里面包含书名号《》的内容提取出来,保存在1.txt文件中?

怎样把图片上的带有《》的内容全部从word里面提取出来,保存在1.txt里面,一行一个

第1个回答  2023-03-24
可以通过以下批处理命令实现:
Copy Code@echo offsetlocal enabledelayedexpansionREM 设置Word文件路径和输出文件路径set "word_file=C:\Users\user\Desktop\test.docx"set "output_file=C:\Users\user\Desktop\1.txt"REM 提取包含书名号的内容for /f "tokens=*" %%a in ('type "%word_file%" ^| findstr /r "\<《.*》\>"') do ( set "line=%%a" REM 去除行首空格并输出到文件
set "line=!line: =!" echo !line!>>"%output_file%"
)REM 输出完成消息echo 提取完成,请查看文件:%output_file%pause

在上述代码中,设置了两个变量word_file和output_file分别表示Word文件路径和输出文件路径。接着使用for /f命令循环遍历Word文件中的每一行,并使用findstr命令查找包含书名号的行。然后,去除行首的空格并将其输出到输出文件中。最后,输出提取完成的消息并暂停程序。
请注意,在运行此批处理文件之前,需要将word_file和output_file变量的值更改为您自己的文件路径和输出路径。
第2个回答  2023-03-24
可以通过以下的批处理命令来提取 Word 文档中包含书名号《》的内容,并将结果保存在 1.txt 文件中:
@echo off
setlocal enabledelayedexpansion
set count=0
for /f "tokens=*" %%i in ('type input.docx ^| findstr "\<《"') do (
set /a count+=1
echo %%i>>1.txt
)
请将 input.docx 替换为你要处理的 Word 文档的文件名。执行以上命令后,批处理脚本将遍历文档中所有包含书名号《》的行,并将这些行输出到 1.txt 文件中。
第3个回答  2023-03-24
可以使用以下批处理命令实现:

@echo off
setlocal enabledelayedexpansion

set "input_file=path\to\your\input\file.docx"
set "output_file=path\to\your\output\file.txt"

for /f "usebackq tokens=*" %%a in (`powershell -Command "& {Add-Type -AssemblyName Microsoft.Office.Interop.Word; $word = New-Object -ComObject Word.Application; $document = $word.Documents.Open('%input_file%'); $text = $document.Content.Text; $document.Close(); $word.Quit(); $text}"`) do (
set "line=%%a"
if "!line:~0,1!"=="《" (
echo !line!>>"%output_file%"
)
)
上述命令首先使用 Office Interop API 将 Word 文档内容提取到一个字符串变量中,然后通过在批处理循环中查找包含书名号的行并将其写入指定的输出文件中。

需要注意的是,您需要将命令中的 path\to\your\input\file.docx 替换为实际的 Word 文件路径,将 path\to\your\output\file.txt 替换为实际的输出文件路径。此外,由于该命令需要在 Windows 上运行,您需要确保已安装了 Microsoft Office 和 PowerShell。
第4个回答  2023-03-24
@echo off
setlocal EnableDelayedExpansion
set "inputfile=mywordfile.docx"
set "outputfile=1.txt"
echo. > %outputfile%
for /f "tokens=*" %%A in ('powershell -command "$word = New-Object -ComObject Word.Application; $doc = $word.Documents.Open('%inputfile%'); $doc.Range().Text"') do (
set "line=%%A"
setlocal DisableDelayedExpansion
set "match="
for /f "tokens=1,2 delims=《》" %%B in ("!line!") do (
setlocal EnableDelayedExpansion
if "%%B" neq "" (
echo %%B>> %outputfile%
)
endlocal
)
endlocal
)
echo Done!
pause
复制上面刀txt文档里面,然后把mywordfile.docx,改成你的word名称。
保存以后。把txt后缀改成bat,运行