标题: 新手写的搜索并连接打印机批处理脚本效率太低,请指点 [打印本页]
作者: zhujinhe 时间: 2012-9-5 12:44 标题: 新手写的搜索并连接打印机批处理脚本效率太低,请指点
环境介绍:局域网大约有30台Windows XP SP3电脑,IP地址是自动获取,每个电脑都有2个管理员组用户,administrator密码均为123456,另一个帐号abc,密码由使用者自己设置。
有2种型号的打印机插到其中1台或2台电脑(称作打印机服务器)上,已经安装USB打印机并设置为共享。
插着打印机的计算机名需要批处理进行判断,打印机共享名需要批处理判断,用户自己设定更改密码不影响打印机使用。
以下是net view 的输出的结果:- 服务器名称 注解
-
- ---------------------------------
- \\助理 分店
- \\欧陆经典01 分店
- \\欧陆经典02 分店
- \\欧陆经典03 分店
- \\欧陆经典04 分店
- \\欧陆经典05 分店
- \\欧陆经典06 分店
- \\欧陆经典07 分店
- \\欧陆经典09 分店
- \\欧陆经典10 分店
- \\欧陆经典11 分店
- \\欧陆经典12 分店
- \\欧陆经典13 分店
- \\欧陆经典14 分店
- \\欧陆经典15 分店
- 命令成功完成。
复制代码
现状:在需要使用共享打印机的电脑上双击批处理,可以搜索出打印机服务器和打印机的共享名,并进行连接,然后用cmdkey.exe(XP没有,在win7里提取的)来保存其他电脑的用户名和密码。
1、由于批处理使用的不太熟练,截取net view只会先截出\\计算机名,再去去掉\\,应该可以简化步骤。
2、运行批处理后会保存所有net view列出电脑的帐号密码,需要的是只保存有打印机服务器的电脑密码。
3、逻辑似乎有问题,运行到搜索到共享打印机需要大约1分钟的时间,有些长。
4、有些报错不知道怎么隐藏,只能把结果全隐藏了。
请高手提出个功能和效率高一些的建议,贴出代码更好
先贴出不成熟的代码:- @echo off&color 1f&rem num=10 nums=20
- mode con: cols=60 lines=25
-
- @rem cmdkey.exe释放到system32文件夹下
- copy cmdkey.exe C:\Windows\system32\cmdkey.exe >nul 2>nul
-
- @rem 连接打印机共享
- echo +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- echo + 本程序可以自动搜索并连接局域网中打印机 +
- for /l %%l in (1,1,60) do set/p a=^+<nul& ping 127.0.0.1 -n 0 >nul
- echo + 稍等片刻,会弹出的连接打印机的警告框,选择:是 +
- for /l %%l in (1,1,60) do set/p a=^+<nul& ping 127.0.0.1 -n 0 >nul
-
- for /f "tokens=1" %%i in ('net view ^| find "\\"') do (
- for /f "delims=\" %%j in ("%%i") do (
- cmdkey /add:%%j /user:%%j\administrator /pass:123456 >nul 2>nul
- for /f "tokens=1" %%k in ('net view \\%%j^| find "Print"') do (
- rundll32 printui.dll,PrintUIEntry /in /u /z /q /n \\%%~nj\%%~nk
- )
- )
- )>nul 2>nul
- echo 打印机已经添加完毕。
- pause
复制代码
作者: forfiles 时间: 2012-9-5 15:23
- @echo off
- for /f "tokens=1 delims=\ " %%a in ('net view ^| find "\\"') do (
- echo %%a
- )
- pause
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |