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 位参与者