Board logo

标题: [系统相关] win11 打印机批处理安装教程 [打印本页]

作者: q9339    时间: 2024-9-12 10:30     标题: win11 打印机批处理安装教程

  1. @echo off
  2. MODE con: COLS=100 LINES=28
  3. title 打印机自动安装程序
  4. set TheBit=%PROCESSOR_ARCHITECTURE:~-2%
  5. if /i not "%os%"=="Windows_NT" (set TheOS=非Windows系统&set TheBit=) else (
  6.     ver | find "10.0" > nul && set system_info=Win10.%TheBit%
  7.     ver | find "10.0.22000" > nul && set system_info=Win11.%TheBit%
  8. )
  9. :: 定义打印机信息
  10. set print_port=LPT1:
  11. set print_drive_dir=C:\ceshi\Gprinter.inf
  12. set print_drive_name=Gprinter GP-M323
  13. :: 打印机列表
  14. set "printers=便捷式打印50X40 便捷式打印40X30 便捷式打印40X24"
  15. echo.
  16. echo.          打印机自动安装程序
  17. echo.
  18. echo.    =========================================================================
  19. echo.
  20. echo.    操作系统 :  %system_info%
  21. echo.
  22. echo.    打印机端口:  %print_port%
  23. echo.
  24. echo.    驱动路径 :  %print_drive_dir%
  25. echo.
  26. echo.    驱动名称 :  %print_drive_name%
  27. echo.
  28. echo.    =========================================================================
  29. echo.
  30. echo.    准备安装以下打印机:
  31. echo.    %printers%
  32. echo.
  33. echo.    如果出现提示,请允许运行
  34. echo.
  35. echo.    如果程序运行异常或未能安装打印机,请联系管理员!
  36. echo.
  37. echo.
  38. echo.
  39. :check
  40. :: 检查驱动目录是否存在
  41. if not exist %print_drive_dir% goto no_drive
  42. :install_printers
  43. :: 循环安装每个打印机
  44. for %%p in (%printers%) do (
  45.     echo.
  46.     echo.    正在安装打印机 %%p,请稍等...
  47.     rundll32 printui.dll,PrintUIEntry /if /b "%%p" /f "%print_drive_dir%" /r "%print_port%" /m "%print_drive_name%" /z
  48.     if errorlevel 0 (
  49.         echo.
  50.         echo.    打印机 %%p 安装成功!
  51.     ) else (
  52.         echo.
  53.         echo.    打印机 %%p 安装失败!
  54.     )
  55. )
  56. :end
  57. echo.
  58. echo.  5秒后自动退出...
  59. echo.
  60. ping -n 5 127.0.0.1 >nul
  61. exit
  62. :no_drive
  63. echo.
  64. echo.  驱动文件不存在或操作系统不支持,程序即将退出...
  65. echo.
  66. goto end
复制代码

作者: 77七    时间: 2024-9-12 12:19

  1. set print_drive_dir=C:\ceshi\Gprinter.inf
  2. if not exist %print_drive_dir% goto no_drive
复制代码

第13行如果含有空格等,第47行会报错

  1.     if errorlevel 0 (
  2.         echo.
  3.         echo.    打印机 %%p 安装成功!
  4.     ) else (
  5.         echo.
  6.         echo.    打印机 %%p 安装失败!
  7.     )
复制代码


第55行如果 rundll32 返回值没有负值,用法错误
  1.     if errorlevel 1 (
  2.         echo.
  3.         echo.    打印机 %%p 安装失败!
  4.     ) else (
  5.         echo.
  6.         echo.    打印机 %%p 安装成功!
  7.     )
复制代码





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