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

[系统相关] 帮忙修改一下网络打印机的批处理脚本

  1. @echo off
  2. MODE con: COLS=20 LINES=20
  3. rem 自动提权以管理员方式运行
  4. >nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
  5. if '%errorlevel%' EQU '5' (
  6. goto UACPrompt
  7. ) else ( goto gotAdmin )
  8. :UACPrompt
  9. echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
  10. echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
  11. "%temp%\getadmin.vbs"
  12. exit /B
  13. :gotAdmin
  14. if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
  15. pushd "%CD%"
  16. CD /D "%~dp0"
  17. @echo off
  18. MODE con: COLS=100 LINES=28
  19. title 打印机自动安装程序  by:COAadmin  Blog:www.zifumao.com
  20. set TheBit=%PROCESSOR_ARCHITECTURE:~-2%
  21. if /i not "%os%"=="Windows_NT" (set TheOS=非Windows系统&set TheBit=) else (
  22. ver | find "5.1" > nul && set system_info=WinXP.%TheBit%
  23. ver | find "6.1" > nul && set system_info=Win7.%TheBit%
  24. ver | find "6.2" > nul && set system_info=Win8.%TheBit%
  25. ver | find "10.0"> nul && set system_info=Win10.%TheBit%
  26. )
  27. rem  Tips:根据自身情况修改第41 - 44行等于号后面的内容
  28. rem
  29. rem  变量说明:
  30. rem
  31. rem  打印机名称:print_name      //在 “设备和打印机” 界面中显示的名称
  32. rem  打印机IP:print_IP        //打印机IP地址,仅适用于TCP/IP端口
  33. rem  驱动文件路径:print_drive_dir  //驱动文件相对路径,%~dp0表示当前运行路径,如驱动不区分操作系统则删除 “ %system_info% ” 并修改为驱动子目录,如 %~dp0Drive\drive.inf
  34. rem  驱动名称:print_drive_name    //inf文件中可能包含多个型号的打印机驱动,该名称用于匹配驱动名称,可在打印机 “属性” 中的 “高级” 中点击 “新驱动程序” 查看
  35. rem
  36. set print_name=EPSON L310 Series
  37. set print_IP=192.168.31.100
  38. set print_drive_dir=%cd%\x64\E_WF1N4E.INF
  39. set print_drive_name=EPSON L310 Series
  40. echo.
  41. echo.          打印机自动安装程序   by:COAadmin  Blog:www.zifumao.com
  42. echo.
  43. echo.    =========================================================================
  44. echo.
  45. echo.    操作系统 :  %system_info%
  46. echo.
  47. echo.    打印机名 :  %print_name%
  48. echo.
  49. echo.    打印机IP :  %print_IP%
  50. echo.
  51. echo.    驱动路径 :  %print_drive_dir%
  52. echo.
  53. echo.    驱动名称 :  %print_drive_name%
  54. echo.  
  55. echo.    =========================================================================
  56. echo.
  57. echo.    准备安装 %print_name% 打印机
  58. echo.
  59. echo.    如果360安全卫士拦截了,允许运行
  60. echo.
  61. echo.    如果运行本程序出现异常或者程序运行后未能安装打印机,请联系管理员!
  62. echo.
  63. echo.
  64. echo.
  65. echo.    ★ ★ ★ 按任意键开始安装打印机 ★ ★ ★
  66. echo.
  67. pause>nul
  68. :check
  69. rem 检查驱动目录是否存在
  70. if not exist %print_drive_dir% goto no_drive
  71. :add_port
  72. echo.
  73. echo.    正在添加打印机端口
  74. reg add "HKLM\SYSTEM\CurrentControlSet\Control\Print\Monitors\Standard TCP/IP Port\Ports\%print_IP%" /v "Protocol" /t REG_DWORD  /d 0x1 /f>nul
  75. reg add "HKLM\SYSTEM\CurrentControlSet\Control\Print\Monitors\Standard TCP/IP Port\Ports\%print_IP%" /v "Version" /t REG_DWORD  /d 0x2 /f>nul
  76. reg add "HKLM\SYSTEM\CurrentControlSet\Control\Print\Monitors\Standard TCP/IP Port\Ports\%print_IP%" /v "HostName" /t REG_SZ /d "%print_IP%" /f>nul
  77. reg add "HKLM\SYSTEM\CurrentControlSet\Control\Print\Monitors\Standard TCP/IP Port\Ports\%print_IP%" /v "IPAddress" /t REG_SZ /d "" /f>nul
  78. reg add "HKLM\SYSTEM\CurrentControlSet\Control\Print\Monitors\Standard TCP/IP Port\Ports\%print_IP%" /v "HWAddress" /t REG_SZ /d "" /f>nul
  79. reg add "HKLM\SYSTEM\CurrentControlSet\Control\Print\Monitors\Standard TCP/IP Port\Ports\%print_IP%" /v "PortNumber" /t REG_DWORD  /d 0x238c /f>nul
  80. reg add "HKLM\SYSTEM\CurrentControlSet\Control\Print\Monitors\Standard TCP/IP Port\Ports\%print_IP%" /v "SNMP Community" /t REG_SZ /d "public" /f>nul
  81. reg add "HKLM\SYSTEM\CurrentControlSet\Control\Print\Monitors\Standard TCP/IP Port\Ports\%print_IP%" /v "SNMP Enabled" /t REG_DWORD  /d 0x0 /f>nul
  82. reg add "HKLM\SYSTEM\CurrentControlSet\Control\Print\Monitors\Standard TCP/IP Port\Ports\%print_IP%" /v "SNMP Index" /t REG_DWORD  /d 0x1 /f>nul
  83. reg add "HKLM\SYSTEM\CurrentControlSet\Control\Print\Monitors\Standard TCP/IP Port\Ports\%print_IP%" /v "PortMonMibPortIndex" /t REG_DWORD  /d 0x1 /f>nul
  84. reg add "HKLM\SYSTEM\ControlSet001\Control\Print\Monitors\Standard TCP/IP Port\Ports\%print_IP%" /v "Protocol" /t REG_DWORD  /d 0x1 /f>nul
  85. reg add "HKLM\SYSTEM\ControlSet001\Control\Print\Monitors\Standard TCP/IP Port\Ports\%print_IP%" /v "Version" /t REG_DWORD  /d 0x2 /f>nul
  86. reg add "HKLM\SYSTEM\ControlSet001\Control\Print\Monitors\Standard TCP/IP Port\Ports\%print_IP%" /v "HostName" /t REG_SZ /d "%print_IP%" /f>nul
  87. reg add "HKLM\SYSTEM\ControlSet001\Control\Print\Monitors\Standard TCP/IP Port\Ports\%print_IP%" /v "IPAddress" /t REG_SZ /d "" /f>nul
  88. reg add "HKLM\SYSTEM\ControlSet001\Control\Print\Monitors\Standard TCP/IP Port\Ports\%print_IP%" /v "HWAddress" /t REG_SZ /d "" /f>nul
  89. reg add "HKLM\SYSTEM\ControlSet001\Control\Print\Monitors\Standard TCP/IP Port\Ports\%print_IP%" /v "PortNumber" /t REG_DWORD  /d 0x238c /f>nul
  90. reg add "HKLM\SYSTEM\ControlSet001\Control\Print\Monitors\Standard TCP/IP Port\Ports\%print_IP%" /v "SNMP Community" /t REG_SZ /d "public" /f>nul
  91. reg add "HKLM\SYSTEM\ControlSet001\Control\Print\Monitors\Standard TCP/IP Port\Ports\%print_IP%" /v "SNMP Enabled" /t REG_DWORD  /d 0x0 /f>nul
  92. reg add "HKLM\SYSTEM\ControlSet001\Control\Print\Monitors\Standard TCP/IP Port\Ports\%print_IP%" /v "SNMP Index" /t REG_DWORD  /d 0x1 /f>nul
  93. reg add "HKLM\SYSTEM\ControlSet001\Control\Print\Monitors\Standard TCP/IP Port\Ports\%print_IP%" /v "PortMonMibPortIndex" /t REG_DWORD  /d 0x1 /f>nul
  94. echo.
  95. echo.    正在重启打印服务,请稍等……
  96. echo.
  97. rem 必须重启打印服务才能成功添加端口
  98. net stop spooler>nul
  99. net start spooler>nul
  100. if errorlevel 0 echo.    打印服务重启成功
  101. echo.   ..............................................
  102. rem  如无需删除同名打印机,请删除或注释下行
  103. rem rundll32 printui.dll,PrintUIEntry /n"%print_name%" /dl
  104. echo.
  105. echo.    安装%print_name% 打印机......
  106. echo.
  107. :install
  108. REM # /b 参数用于指定安装的打印机名称。
  109. REM # /f 参数用于指定打印机的驱动文件。
  110. REM # /r 具体的端口名称可以通过 打印机属性-->端口 那边去查看。
  111. REM # /m 参数用于指定打印驱动程序的名称。
  112. rundll32 printui.dll,PrintUIEntry /if /b "%print_name%" /f "%print_drive_dir%"  /r "%print_IP%" /m "%print_drive_name%" /z
  113. if errorlevel 0 (
  114.   echo.
  115.   echo.    打印机安装成功!
  116.   echo.
  117.   echo.    ===========================================================
  118.   echo.
  119.   goto end
  120. )else if(
  121.   echo.
  122.   echo.    打印机安装失败!
  123.   echo.
  124.   echo.    ===========================================================
  125.   goto end
  126. )
  127. echo.
  128. echo.
  129. rem 安装好打印机后,也可以在批处理文件最后加一行命令,把这个打印机设置为默认。
  130. echo.
  131. rem  echo 将这个打印机设置为默认打印机
  132. rem  rundll32 printui.dll,PrintUIEntry /y /n %print_name%
  133. goto end
  134. REM #*********************************************************************************
  135. REM #
  136. REM # /ia 用 inf 文件安装打印机驱动程序
  137. REM # /if 用 inf 文件安装打印机
  138. REM # /b[name] 基本打印机名
  139. REM # /c[name] 如果操作在远程机器上,unc 机器名
  140. REM # /dl 删除本地打印机
  141. REM # /dn 删除网络打印机连接
  142. REM # /dd 删除打印机驱动程序
  143. REM # /f[file] inf 文件或输出文件
  144. REM # /h[arch] 驱动程序体系结构,为下列之一: Alpha | Intel | IA64
  145. REM # /m[model] 打印机驱动程序型号名
  146. REM # /n[name] 打印机名
  147. REM # /v[version] 驱动程序版本属于下列中的一个: Windows 95、98 和 ME | Windows NT 4.0 | Windows NT 4.0 或 2000 | Windows 2000 或 XP| Windows XP
  148. REM # /q 安静模式,不显示错误信息
  149. REM # /r[port] 端口名
  150. REM # /y 将打印机设为默认打印机
  151. REM # /z 不要自动共享这台打印机
  152. REM # /Z 共享这台打印机,只能跟 /if 选项一起使用
  153. REM #其中/m参数后面的打印机驱动程序型号名为inf文件中用于指明驱动的打印机名称,一般在使用向导安装的时候在选定inf文件后出来的所有驱动名称中你自己需要的那个。
  154. REM #
  155. REM # 更多的帮助请使用rundll32 printui.dll,PrintUIEntry /?
  156. REM #
  157. REM #*********************************************************************************
  158. :no_drive
  159. rem  没有驱动文件
  160. echo.
  161. echo.  驱动文件不存在或操作系统不支持,程序即将退出...
  162. echo.
  163. :end
  164. rem 即将退出程序
  165. echo.
  166. echo.  5秒后自动退出...
  167. echo.
  168. ping -n 5 127.0.0.1>nul
  169. start https://www.zifumao.com/3692.html
  170. exit
复制代码
原来用着 好好的   自从升级到 WIN11-26252 以后  就没办法安装了
提示0X00006BE


本帖最后由 hnfeng 于 2024-7-14 12:51 编辑

ver | find "11.0"> nul && set system_info=Win11.%TheBit%
首先,这句没问题吗?
win11里面貌似是 10.0.2xxx

TOP

本帖最后由 lovekix 于 2024-7-14 12:57 编辑

回复 2# hnfeng


    这句是刚才加的  原来没有  
删除后   或修改了为Win10.%TheBit%   
错误一样

这命令 好像只是 显示   

TOP

回复 1# lovekix



https://www.zifumao.com/3692.html 这里面的代码没有下面这行哦,你自己加的吗?估计相应的参数什么的也要看看有没有需要改的
  1. ver | find "11.0"> nul && set system_info=Win11.%TheBit%
复制代码

TOP

感觉太复杂了。

另一种方法试试:
1、替换win32spl.dll(论坛里面有)
2、打开SMB1
3、打开我的电脑,或者任意个文件夹,在地址栏输入 \\192.168.31.100
如果不能打开,找找文件共享方面的原因吧,先解决这个。
4、如果能打开,双击要添加的打印机的图标,一路 下一步 就好了

TOP

本帖最后由 lovekix 于 2024-7-14 13:47 编辑

回复 4# hnfeng
  1. rundll32 printui.dll,PrintUIEntry /if /b "%print_name%" /f "%print_drive_dir%"  /r "%print_IP%" /m "%print_drive_name%"  (
复制代码
主要代码应该是这个
  1. rundll32 printui.dll,PrintUIEntry /if /b "EPSON L310 Series" /f "C:\Users\Administrator\Downloads\Epson_L310_Series\x64\E_WF1N4E.INF"  /r "192.168.31.100" /m "EPSON L310 Series"
复制代码
提示参数无效

rundll32 printui.dll,PrintUIEntry /?

TOP

回复 5# hnfeng


    手动安装没问题的

就是 用批处理  就弹出错误提示

TOP

返回列表