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

[ZT]使用批处理成批添加打印机(含打印服务器)

目的:
根据打印机配置文件,成批的添加打印机,例如一台电脑同时要安装一个本地的并口打印机,一个网络打印服务器(并非共享其它电脑的打印机,是那种可用一条网线接上交换机的打印机)。

实现步骤:
1、轮询目录下的“打印机X.txt”,根据其中的端口描述判断是否本地LPT端口,如果是LPT本地打印机就不理会,如果是打印服务器,会自动创建新的TCP/IP端口。
2、重启打印服务,使新创建的本地IP端口生效。
3、轮询目录下的“打印机X.txt”,根据其中的打印机名称、驱动位置、打印机型号、打印机端口添加打印服务器。

关键语句:
rundll32 printui.dll,PrintUIEntry /?

缺陷:
因为我这里用不到USB口的本地打印机,以及不使用共享打印机,所以没有添加判断这类打印机的语句。

★★★★★★★★★
下面是批处理的代码
  1. @echo off
  2. cls
  3. rem 以下是判断端口
  4. set count=0
  5. :addreginfo
  6. set /a count=%count%+1
  7. if exist 打印机%count%.txt (set filename=打印机%count%.txt) else (goto eof)
  8. for /f "tokens=2 delims==" %%a in ('type %filename% ^|findstr /I "打印机IP="') do set pIP=%%a
  9. if /I "%pIP%"=="LPT1:" goto addreginfo
  10. if /I "%pIP%"=="LPT2:" goto addreginfo
  11. rem 以下是添加端口在注册表中的信息
  12. set regpath1=HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Monitors\Standard TCP/IP Port\Ports\IP_
  13. set regpath2=HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Print\Monitors\Standard TCP/IP Port\Ports\IP_
  14. :addreg1
  15. reg add "%regpath1%%pip%" /v "Protocol" /d "00000001" /f /t REG_DWORD >nul 2>nul
  16. reg add "%regpath1%%pip%" /v "Version" /d "00000001" /f /t REG_DWORD >nul 2>nul
  17. reg add "%regpath1%%pip%" /v "HostName" /d "" /f >nul 2>nul
  18. reg add "%regpath1%%pip%" /v "IPAddress" /d "%pip%" /f >nul 2>nul
  19. reg add "%regpath1%%pip%" /v "HWAddress" /d "" /f >nul 2>nul
  20. reg add "%regpath1%%pip%" /v "PortNumber" /d "9100" /f /t REG_DWORD >nul 2>nul
  21. reg add "%regpath1%%pip%" /v "SNMP Community" /d "public" /f >nul 2>nul
  22. reg add "%regpath1%%pip%" /v "SNMP Enabled" /d "00000000" /f /t REG_DWORD >nul 2>nul
  23. reg add "%regpath1%%pip%" /v "SNMP Index" /d "00000001" /f /t REG_DWORD >nul 2>nul
  24. :addreg2
  25. reg add "%regpath2%%pip%" /v "Protocol" /d "00000001" /f /t REG_DWORD >nul 2>nul
  26. reg add "%regpath2%%pip%" /v "Version" /d "00000001" /f /t REG_DWORD >nul 2>nul
  27. reg add "%regpath2%%pip%" /v "HostName" /d "" /f >nul 2>nul
  28. reg add "%regpath2%%pip%" /v "IPAddress" /d "%pip%" /f >nul 2>nul
  29. reg add "%regpath2%%pip%" /v "HWAddress" /d "" /f >nul 2>nul
  30. reg add "%regpath2%%pip%" /v "PortNumber" /d "9100" /f /t REG_DWORD >nul 2>nul
  31. reg add "%regpath2%%pip%" /v "SNMP Community" /d "public" /f >nul 2>nul
  32. reg add "%regpath2%%pip%" /v "SNMP Enabled" /d "00000000" /f /t REG_DWORD >nul 2>nul
  33. reg add "%regpath2%%pip%" /v "SNMP Index" /d "00000001" /f /t REG_DWORD >nul 2>nul
  34. goto addreginfo
  35. :eof
  36. rem 以下是重新启动打印服务,使新端口生效
  37. :restartservice
  38. cls
  39. echo.
  40. echo   请稍候,正在启用打印机端口!
  41. echo.
  42. net stop spooler >nul 2>nul
  43. net start spooler >nul 2>nul
  44. rem 以下是添加打印机
  45. set count=0
  46. :instprinter
  47. set /a count=%count%+1
  48. if exist 打印机%count%.txt (set filename=打印机%count%.txt) else (goto over)
  49. cls
  50. for /f "tokens=2 delims==" %%a in ('type %filename% ^|findstr "打印机IP="') do set pIP=%%a
  51. for /f "tokens=2 delims==" %%a in ('type %filename% ^|findstr "打印机名称="') do set pname=%%a
  52. for /f "tokens=2 delims==" %%a in ('type %filename% ^|findstr "打印机型号="') do set pmodel=%%a
  53. for /f "tokens=2 delims==" %%a in ('type %filename% ^|findstr "打印机INF位置="') do set pinf=%%a
  54. echo.
  55. echo 请稍等,正在添加打印机%count%,相关信息如下:
  56. echo.
  57. echo  IP  :%pIP%
  58. echo 名称 :%pname%
  59. echo 型号 :%pmodel%
  60. echo 驱动 :%pinf%
  61. if /I "%pIP%"=="LPT1:" (goto ok)
  62. if /I "%pIP%"=="LPT2:" (goto ok) else (set pip=IP_%pip%)
  63. :ok
  64. rundll32 printui.dll,PrintUIEntry /if /b "%pname%" /f "%pinf%" /r "%pIP%" /m "%pmodel%"
  65. goto instprinter
  66. :over
  67. cls
  68. echo.
  69. echo  打印机添加完毕!
  70. pause
  71. exit
复制代码
网络打印服务器配置文件“打印机1.txt”的内容:
  1. 打印机IP=44.44.44.44
  2. 打印机名称=柯尼卡 220 打印服务器
  3. 打印机型号=KONICA MINOLTA 220
  4. 打印机INF位置=D:\sysbak\打印机\220驱动\TSK.inf
复制代码
本地打印机配置文件“打印机2.txt”的内容:
  1. 打印机IP=LPT1:
  2. 打印机名称=本地HP 3050
  3. 打印机型号=HP LaserJet 3050 Series PCL 5e
  4. 打印机INF位置=D:\sysbak\打印机\hp3055\Drivers\2K_XP_Vista\hppcp501.inf
复制代码
原文地址:http://www.cn-dos.net/forum/viewthread.php?tid=45138
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

返回列表