[自用分享]Pandoc一键识别Docx转MD文档脚本

Windows的Bat脚本,需要安装Pandoc @echo off chcp 65001 >nul setlocal EnableExtensions DisableDelayedExpansion where pandoc >nul 2>nul if errorlevel 1 goto no_p...
[自用分享]Pandoc一键识别Docx转MD文档脚本
[自用分享]Pandoc一键识别Docx转MD文档脚本

Windows的Bat脚本,需要安装Pandoc

@echo off
chcp 65001 >nul
setlocal EnableExtensions DisableDelayedExpansion

where pandoc >nul 2>nul
if errorlevel 1 goto no_pandoc

echo.
echo ================================
echo   Smart Document to Markdown
echo   Stable BAT Version
echo ================================
echo.

if "%~1"=="" goto scan_current_folder
goto convert_args


:scan_current_folder
echo 没有拖入文件,开始扫描当前文件夹...
echo.

for %%F in (*.docx *.odt *.html *.htm *.epub *.md *.markdown *.txt *.rst *.tex) do call :convert "%%~fF"

goto done


:convert_args
echo 检测到拖入文件,开始转换...
echo.

:arg_loop
if "%~1"=="" goto done
call :convert "%~1"
shift
goto arg_loop


:convert
if not exist "%~1" goto missing_file

set "input=%~1"
set "name=%~n1"
set "ext=%~x1"
set "format="

if /i "%ext%"==".docx" set "format=docx"
if /i "%ext%"==".odt" set "format=odt"
if /i "%ext%"==".html" set "format=html"
if /i "%ext%"==".htm" set "format=html"
if /i "%ext%"==".epub" set "format=epub"
if /i "%ext%"==".md" set "format=markdown"
if /i "%ext%"==".markdown" set "format=markdown"
if /i "%ext%"==".txt" set "format=markdown"
if /i "%ext%"==".rst" set "format=rst"
if /i "%ext%"==".tex" set "format=latex"

if not defined format goto unsupported_file

set "outdir=%~dp1converted\%~n1"
set "outfile=%outdir%\%~n1.md"
set "assets=%outdir%\assets"

if not exist "%outdir%" mkdir "%outdir%"

echo [CONVERT] "%~nx1"
echo           输入格式: %format%
echo           输出文件: "%outfile%"

pandoc "%input%" -f %format% -t gfm --wrap=none --extract-media="%assets%" -o "%outfile%"

if errorlevel 1 goto convert_failed

echo [OK] 完成: "%outfile%"
echo.
goto :eof


:missing_file
echo [SKIP] 文件不存在: "%~1"
echo.
goto :eof


:unsupported_file
echo [SKIP] 不支持的格式: "%~1"
echo.
goto :eof


:convert_failed
echo [FAIL] 转换失败: "%input%"
echo.
goto :eof


:no_pandoc
echo [ERROR] 没找到 pandoc,请确认 pandoc 已加入 PATH。
echo.
pause
exit /b 1


:done
echo ================================
echo 全部处理完成。
echo ================================
pause

1 个帖子 - 1 位参与者

阅读完整话题

来源: LinuxDo 最新话题查看原文