[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 处理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
复制代码

chcp 65001时字体得换成lucida consolecmd窗口才能显示非英文

TOP

回复 2# Five66


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

TOP

返回列表