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

[文本处理] [已解决]求助批处理人机交互,层级选择菜单怎么做出来?(本人小白...)

本帖最后由 xiang1771 于 2018-8-29 22:43 编辑

我想做一个各楼层各部门自动安装网络打印机的脚本,现在单独的打印机脚本我做出来了。
现在需求是:做一个 人机交互脚本去执行某一脚本。
一层的我会做了,后面两层该用什么命令怎么写,求大神做个简单的实例。
本人小白。谢谢大家了~
  1. @echo off
  2. rem 菜单界画
  3. color 0A
  4. echo.
  5. echo ================================
  6. echo             全自动安装打印机
  7. echo.     ================================
  8. echo     请层级输入楼层,部门,打印机型号
  9. echo.    ================================
  10. echo       按回车键确认
  11. echo. ================================
  12. echo.
  13. echo.
  14. echo [15] 楼层部门打印机
  15. echo.
  16. echo [16] 楼层部门打印机
  17. echo.
  18. echo [17] 楼层部门打印机
  19. echo.
  20. echo [18] 楼层部门打印机
  21. echo.
  22. echo [19] 楼层部门打印机
  23. echo.
  24. echo [20] 楼层部门打印机
  25. echo.
  26. echo [21] 楼层部门打印机
  27. echo.
  28. echo [22] 楼层部门打印机
  29. echo.
  30. echo.
  31. rem
  32. rem 选择[15]楼层跳转菜单 1A;2B;3C (ABC要换行的那种) ???????
  33. rem 选择1A跳转菜单 执行当前目录的X;Y;Z的脚本(XYZ要换行的那种 ???????
  34. rem 下面是跳转层的具体命令
  35. set choice=
  36. set /p choice=          请选择:
  37. IF NOT "%choice%"=="" SET choice=%choice:~0,1%
  38. if /i "%choice%"=="15" goto ?????
  39. if /i "%choice%"=="16" goto ?????
  40. if /i "%choice%"=="17" goto
  41. if /i "%choice%"=="18" goto
  42. if /i "%choice%"=="19" goto
  43. if /i "%choice%"=="20" goto
  44. if /i "%choice%"=="21" goto
  45. if /i "%choice%"=="22" goto
  46. echo 选择无效,请重新输入
  47. echo.
  48. pause
复制代码

回复 2# hlzj88


    安装网打的脚本在单位。周一我发上来。其实就是两个脚本,一个修改端口一个安装驱动的。

我这个脚本下一级菜单该怎么做出来?
假如我选择15 按回车,它应该弹出来下一级菜单。这个该怎么写?

TOP

本帖最后由 xiang1771 于 2018-8-26 18:13 编辑

回复 4# hlzj88

    OK,谢谢了,哥们。下级菜单出来了。
    但是我选择15的时 16的内容也会显示出来。用什么隔断一下?
  1. @echo off
  2. rem 菜单界画
  3. color 0A
  4. echo.
  5. echo ================================
  6. echo             全自动安装打印机
  7. echo.     ================================
  8. echo     请层级输入楼层,部门,打印机型号
  9. echo.    ================================
  10. echo       按回车键确认
  11. echo. ================================
  12. echo.
  13. echo.
  14. echo [15] 楼层部门打印机
  15. echo.
  16. echo [16] 楼层部门打印机
  17. echo.
  18. echo [17] 楼层部门打印机
  19. echo.
  20. echo [18] 楼层部门打印机
  21. echo.
  22. echo [19] 楼层部门打印机
  23. echo.
  24. echo [20] 楼层部门打印机
  25. echo.
  26. echo [21] 楼层部门打印机
  27. echo.
  28. echo [22] 楼层部门打印机
  29. echo.
  30. echo.
  31. rem 下面是跳转层的具体命令
  32. set choice=
  33. set /p choice=          请选择:
  34. IF NOT "%choice%"=="" SET choice=%choice:~0,2%
  35. if /i "%choice%"=="15" goto shiwu
  36. if /i "%choice%"=="16" goto shiliu
  37. if /i "%choice%"=="17" goto
  38. if /i "%choice%"=="18" goto
  39. if /i "%choice%"=="19" goto
  40. if /i "%choice%"=="20" goto
  41. if /i "%choice%"=="21" goto
  42. if /i "%choice%"=="22" goto
  43. echo 选择无效,请重新输入
  44. echo.
  45. :shiwu
  46. echo [1]信息科技部
  47. echo.
  48. echo.
  49. echo [2]渠道管理部
  50. echo.
  51. echo.
  52. echo [3]运维部门
  53. echo.
  54. echo.
  55. :shiliu
  56. echo [1]网络金融部
  57. echo.
  58. echo.
  59. echo [2]个人金融部
  60. echo.
  61. echo.
  62. echo [3]后勤事务部
  63. echo.
  64. echo.
  65. echo [4]客服中心
  66. set bumen=
  67. set /p bumen=          请选择:
  68. IF NOT "%bumen%"=="" SET choice=%bumen:~0,1%
  69. if /i "%bumen%"=="1" call %cd%\jiaoben\1.bat
  70. if /i "%bumen%"=="2" goto %cd%\
  71. if /i "%bumen%"=="3" goto
  72. if /i "%bumen%"=="4" goto kefu
  73. :kefu
  74. 123
  75. echo 选择无效,请重新输入
  76. echo.
  77. pause
复制代码

TOP

回复 7# hlzj88

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Monitors\Standard TCP/IP Port\Ports]
"StatusUpdateInterval"=dword:0000000a
"StatusUpdateEnabled"=dword:00000001
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Monitors\Standard TCP/IP Port\Ports\IP_11.150.182.201]
"Protocol"=dword:00000002
"Version"=dword:00000002
"HostName"="11.150.182.201"
"IPAddress"=""
"HWAddress"=""
"PortNumber"=dword:00000203
"SNMP Community"="public"
"SNMP Enabled"=dword:00000001
"SNMP Index"=dword:00000001
"PortMonMibPortIndex"=dword:00000001
"Queue"="print"
"Double Spool"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Print\Monitors\Standard TCP/IP Port\Ports]
"StatusUpdateInterval"=dword:0000000a
"StatusUpdateEnabled"=dword:00000001
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Print\Monitors\Standard TCP/IP Port\Ports\IP_11.150.182.201]
"Protocol"=dword:00000002
"Version"=dword:00000002
"HostName"="11.150.182.201"
"IPAddress"=""
"HWAddress"=""
"PortNumber"=dword:00000203
"SNMP Community"="public"
"SNMP Enabled"=dword:00000001
"SNMP Index"=dword:00000001
"PortMonMibPortIndex"=dword:00000001
"Queue"="print"
"Double Spool"=dword:00000000

@echo off
echo 正在安装...
title 打印机自动安装程序
echo 正在安装(理光)RICOH_3501_打印机,请稍等……
echo.
echo 如果360安全卫士拦截了,允许运行
echo.
echo 如果运行本程序出现异常或者程序运行后未能安装打印机,请联系管理员
echo.


:64bit
echo 正在为您安装64位打印机驱动
echo.
rem 导入添加端口的注册表文件
reg import add_port.reg
if errorlevel 0 echo 网络打印机端口安装成功
echo.
echo 正在重启打印服务,请稍等……
echo.
rem 必须重启打印服务才能成功添加端口
net stop spooler>nul
net start spooler>nul
if errorlevel 0 echo 打印服务重启成功
echo ..............................................
echo ..............................................
echo 删除已经存在的同名打印机
rundll32 printui.dll,PrintUIEntry /dl /n "HP LaserJet MFP M725 PCL 6" /q
echo.
echo 安装(理光)RICOH_3501_打印机......
echo.

REM # /b 参数用于指定安装的打印机名称。
REM # /f 参数用于指定打印机的驱动文件。
REM # /r 具体的端口名称可以通过 打印机属性-->端口 那边去查看。
REM # /m 参数用于指定打印驱动程序的名称。
rundll32 printui.dll,PrintUIEntry /if /b "HP LaserJet MFP M725 PCL 6" /f "\\11.150.191.219\02常用驱动\1HP打印驱动\laserjet_m725\x86\hpcm725c.inf" /r "IP_11.150.182.201" /m "HP LaserJet MFP M725 PCL 6" /z

if errorlevel 0 echo 打印机安装成功
echo.
rem 安装好打印机后,也可以在批处理文件最后加一行命令,把这个打印机设置为默认。
echo.

echo 将这个打印机设置为默认打印机
rundll32 printui.dll,PrintUIEntry /y /n "HP LaserJet MFP M725 PCL 6"

goto end

第一个是改注册表的。reg
你看看,我这有个问题。能在脚本里写自动识别是32&64位的系统吗?然后识别出来自动安32或64的驱动,该怎么写。。。。

TOP

回复 6# xczxczxcz


    谢谢了。思路学会了。

TOP

返回列表