Board logo

标题: [文件操作] 处理pdf文件的代码突然无法正常运行 [打印本页]

作者: 暴雪英雄    时间: 2024-8-15 11:32     标题: 处理pdf文件的代码突然无法正常运行

win7系统,之前代码都能完美运行,实现给pdf加书签,奇数页pdf文件末尾添加空白页,合并pdf为所在文件夹命名的文件,并删除其他pdf文件,最近突然无法运行了,提示“The system cannot write to the specified device”,请问可能存在哪些问题?
  1. rem 批处理保存为utf-8编码格式
  2. chcp 65001 >nul
  3. set "file=C:\PDFtk\空白页.pdf"
  4. set "_pdftk=C:\PDFtk\pdftk.exe"
  5. for /f "delims=" %%i in ('dir /b /a-d *.pdf') do (
  6. %_pdftk% "%%i" dump_data_utf8 output |find "BookmarkTitle:" 1>nul
  7. if errorlevel 1 (
  8. >report.txt (
  9. echo BookmarkBegin
  10. for /f "tokens=2 delims=(" %%x in ("%%~ni") do (
  11. for /f "tokens=1 delims=2" %%y in ("%%x") do (
  12. echo BookmarkTitle: %%y
  13. )
  14. )
  15. echo BookmarkLevel: 1
  16. echo BookmarkPageNumber: 1
  17. )
  18. %_pdftk% "%%i" update_info_utf8 report.txt output $.pdf
  19. cmd /c move $.pdf "%%i" >nul 2>&1
  20. )
  21. )
  22. del report.txt
  23. setlocal enabledelayedexpansion
  24. for %%a in (*.pdf) do (
  25. set /a n+=1
  26. )
  27. for /f "delims=" %%i in ('dir /b /a-d *.pdf') do (
  28. set /a m+=1
  29. if !m! neq !n! (
  30. "%_pdftk%" "%%i" dump_data_utf8 output |findstr /rbec:"NumberOfPages:.*[13579]" 1>nul && (
  31. set strpdf=!strpdf! "%%i" "%file%"
  32. ) || (
  33. set strpdf=!strpdf! "%%i"
  34. )
  35. ) else (
  36. set strpdf=!strpdf! "%%i"
  37. )
  38. )
  39. for %%i in (.) do (
  40. echo 合并 !strpdf!
  41. "%_pdftk%" !strpdf! cat output "%%~nxi.pdf"
  42. set dir_name=%%~nxi
  43. if exist "%%~nxi.pdf" (
  44. for %%a in (*.pdf) do (
  45. if "%%a" neq "%%~nxi.pdf" (
  46. del "%%a"
  47. )
  48. )
  49. )
  50. )
  51. echo 已合并生成"%dir_name%.pdf",并删除其它原始PDF文件。
  52. start "" "%dir_name%.pdf"
  53. endlocal
  54. pause
复制代码

作者: Five66    时间: 2024-8-15 14:10

chcp 65001时字体得换成lucida consolecmd窗口才能显示非英文
作者: 暴雪英雄    时间: 2024-8-15 15:09

回复 2# Five66


    感谢,后面按照网上的方法,修改注册表,重置了一下cmd的默认值,就好了




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2