标题: [文本处理] [已解决]求助批处理人机交互,层级选择菜单怎么做出来?(本人小白...) [打印本页]
作者: xiang1771 时间: 2018-8-26 00:51 标题: [已解决]求助批处理人机交互,层级选择菜单怎么做出来?(本人小白...)
本帖最后由 xiang1771 于 2018-8-29 22:43 编辑
我想做一个各楼层各部门自动安装网络打印机的脚本,现在单独的打印机脚本我做出来了。
现在需求是:做一个 人机交互脚本去执行某一脚本。
一层的我会做了,后面两层该用什么命令怎么写,求大神做个简单的实例。
本人小白。谢谢大家了~
- @echo off
- rem 菜单界画
- color 0A
- echo.
- echo ================================
- echo 全自动安装打印机
- echo. ================================
- echo 请层级输入楼层,部门,打印机型号
- echo. ================================
- echo 按回车键确认
- echo. ================================
- echo.
- echo.
- echo [15] 楼层部门打印机
- echo.
- echo [16] 楼层部门打印机
- echo.
- echo [17] 楼层部门打印机
- echo.
- echo [18] 楼层部门打印机
- echo.
- echo [19] 楼层部门打印机
- echo.
- echo [20] 楼层部门打印机
- echo.
- echo [21] 楼层部门打印机
- echo.
- echo [22] 楼层部门打印机
- echo.
- echo.
- rem
- rem 选择[15]楼层跳转菜单 1A;2B;3C (ABC要换行的那种) ???????
- rem 选择1A跳转菜单 执行当前目录的X;Y;Z的脚本(XYZ要换行的那种 ???????
-
- rem 下面是跳转层的具体命令
- set choice=
- set /p choice= 请选择:
- IF NOT "%choice%"=="" SET choice=%choice:~0,1%
- if /i "%choice%"=="15" goto ?????
- if /i "%choice%"=="16" goto ?????
- if /i "%choice%"=="17" goto
- if /i "%choice%"=="18" goto
- if /i "%choice%"=="19" goto
- if /i "%choice%"=="20" goto
- if /i "%choice%"=="21" goto
- if /i "%choice%"=="22" goto
- echo 选择无效,请重新输入
- echo.
-
- pause
复制代码
作者: hlzj88 时间: 2018-8-26 07:01
- IF NOT "%choice%"=="" SET choice=%choice:~0,1%
复制代码
这是你的第38句,%choice:~0,1%限定了取1位数,但你没有1goto什么,2goto什么。改为%choice:~0,2%即可。
对你的安装网络打印机的bat很赶兴趣,因为也用的着,要是可能,麻烦你贴出来。谢谢!
作者: xiang1771 时间: 2018-8-26 12:53
回复 2# hlzj88
安装网打的脚本在单位。周一我发上来。其实就是两个脚本,一个修改端口一个安装驱动的。
我这个脚本下一级菜单该怎么做出来?
假如我选择15 按回车,它应该弹出来下一级菜单。这个该怎么写?
作者: hlzj88 时间: 2018-8-26 16:22
- @echo off
- rem 菜单界画
- color 0A
- :ks
- echo.
- echo ================================
- echo 全自动安装打印机
- echo. ================================
- echo 请层级输入楼层,部门,打印机型号
- echo. ================================
- echo 按回车键确认
- echo. ================================
- echo.
- echo.
- echo [15] 楼层部门打印机
- echo.
- rem 下面是跳转层的具体命令
- set choice=
- set /p choice= 请选择:
- IF NOT "%choice%"=="" SET choice=%choice:~0,2%
- if /i "%choice%"=="15" goto shiwu
-
- echo 选择无效,请重新输入
- goto ks
-
- :shiwu
- 你的代码
-
- exit 或 goto ks
复制代码
把你的简化了,能看明白就行
作者: xiang1771 时间: 2018-8-26 16:54
本帖最后由 xiang1771 于 2018-8-26 18:13 编辑
回复 4# hlzj88
OK,谢谢了,哥们。下级菜单出来了。
但是我选择15的时 16的内容也会显示出来。用什么隔断一下?- @echo off
- rem 菜单界画
- color 0A
- echo.
- echo ================================
- echo 全自动安装打印机
- echo. ================================
- echo 请层级输入楼层,部门,打印机型号
- echo. ================================
- echo 按回车键确认
- echo. ================================
- echo.
- echo.
- echo [15] 楼层部门打印机
- echo.
- echo [16] 楼层部门打印机
- echo.
- echo [17] 楼层部门打印机
- echo.
- echo [18] 楼层部门打印机
- echo.
- echo [19] 楼层部门打印机
- echo.
- echo [20] 楼层部门打印机
- echo.
- echo [21] 楼层部门打印机
- echo.
- echo [22] 楼层部门打印机
- echo.
- echo.
-
- rem 下面是跳转层的具体命令
- set choice=
- set /p choice= 请选择:
- IF NOT "%choice%"=="" SET choice=%choice:~0,2%
- if /i "%choice%"=="15" goto shiwu
- if /i "%choice%"=="16" goto shiliu
- if /i "%choice%"=="17" goto
- if /i "%choice%"=="18" goto
- if /i "%choice%"=="19" goto
- if /i "%choice%"=="20" goto
- if /i "%choice%"=="21" goto
- if /i "%choice%"=="22" goto
- echo 选择无效,请重新输入
- echo.
-
- :shiwu
- echo [1]信息科技部
- echo.
- echo.
- echo [2]渠道管理部
- echo.
- echo.
- echo [3]运维部门
- echo.
- echo.
-
-
- :shiliu
- echo [1]网络金融部
- echo.
- echo.
- echo [2]个人金融部
- echo.
- echo.
- echo [3]后勤事务部
- echo.
- echo.
- echo [4]客服中心
-
- set bumen=
- set /p bumen= 请选择:
- IF NOT "%bumen%"=="" SET choice=%bumen:~0,1%
- if /i "%bumen%"=="1" call %cd%\jiaoben\1.bat
- if /i "%bumen%"=="2" goto %cd%\
- if /i "%bumen%"=="3" goto
- if /i "%bumen%"=="4" goto kefu
-
-
- :kefu
- 123
-
- echo 选择无效,请重新输入
- echo.
-
-
- pause
复制代码
作者: xczxczxcz 时间: 2018-8-26 19:47
自己增删美化复制代码
===============================
作者: hlzj88 时间: 2018-8-27 16:08
回复 5# xiang1771
哈哈,你忘了4楼的第29行,在之后加其他的。
作者: xiang1771 时间: 2018-8-27 22:22
回复 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的驱动,该怎么写。。。。
作者: xiang1771 时间: 2018-8-27 22:23
回复 6# xczxczxcz
谢谢了。思路学会了。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |