标题: 【已解决,谢谢各位】求编写输入不同数字,则执行不同命令任务 [打印本页]
作者: cfan365 时间: 2023-7-20 21:31 标题: 【已解决,谢谢各位】求编写输入不同数字,则执行不同命令任务
本帖最后由 cfan365 于 2023-8-2 16:52 编辑
具体报酬:1元人民币。
支付方式:微信
联系方式:论坛回帖、论坛内短信、微信等均可。
有效期限:2023年12月31日之前。
需求描述:
(1)系统环境 Win7,中文版,专业版,64位
(2)想要实现的功能的具体描述
对熟悉批处理的人来说特别简单。
需求1:实现输入数字1-12(共12个数字),以此对应不同的操作(cmd窗口显示的内容,我自己自定义就好)。
例如输入12,执行复制个文件啊,删除个文件等等动作任务。
需求2:输入数字,默认就执行对应的命令,不用手动再按一下回车。
需求3:要执行的命令内容,就是在不同文件夹下拷贝文件而已,这部分内容我自己写即可。
需求4:cmd框内,界面干净点,如果可以加个美化背景颜色更好,如果没有也无所谓。
需求5:对应的选择项,我定义为IP_01、IP_02、.....IP_11、IP_12。分别对应输入1-12个数字。
需求6:写在一个批处理里面即可,但必须调用管理员权限哦,没有的话也无所谓,我也有对应的代码。
(3)测试数据及期待结果
自己在win7系统下,测试没问题就可以了。
(4)其它补充信息
因为对于熟悉批处理的人来说简单,可能略微难点的就是10 11 12的编写吧。
所以没有啥太过分的要求。
说白了就是希望论坛的热心高手给个模板,谢谢。
以上的需求,我自己倒是可以编写12个独立的批处理,之后输入不同的选择,去调用这12个批处理。
当然了也可以单独双击这12个独立的批处理。
作者: wh7288 时间: 2023-7-21 11:05
据我所知,输入数字1-12之后,必须输入回车啊,否则批处理如何取值你输入的值.
比如说,你想输入12,如果不输入回车,你输入1之后,批处理就执行选项1了.
模板如下:
@echo off
title XXXXXXX
MODE con: COLS=56 LINES=36 & color 0a
:start
cls
echo.
echo ... 请根据提示输入 1 2 3 然后按回车键 ...
echo.
echo 1:1111
echo.
echo 2:2222
echo.
echo 3:3333
echo.
set /p choice= 请选择:
if %choice%==1 goto 1111
if %choice%==2 goto 2222
if %choice%==3 goto 3333
echo 对不起,您的输入有误,按任意键返回选择目录重新输入。 & pause >nul
goto start
:1111
:2222
:3333
作者: jyswjjgdwtdtj 时间: 2023-7-21 12:31
额 如果不按回车 cmd怎么知道你输入的12是执行12还是1和2?
作者: qixiaobin0715 时间: 2023-7-21 12:42
连回车都懒得按,真是可以额!
作者: Batcher 时间: 2023-7-21 15:26
回复 2# wh7288
choice命令可以做到不回车的情况下获取用户输入
A代替10
B代替11
C代替12- @echo off
- choice /c 123456789ABC
- if %errorlevel%==1 (
- goto :Menu1
- ) else if %errorlevel%==2 (
- goto :Menu2
- ) else if %errorlevel%==3 (
- goto :Menu3
- ) else if %errorlevel%==4 (
- goto :Menu4
- ) else if %errorlevel%==5 (
- goto :Menu5
- ) else if %errorlevel%==6 (
- goto :Menu6
- ) else if %errorlevel%==7 (
- goto :Menu7
- ) else if %errorlevel%==8 (
- goto :Menu8
- ) else if %errorlevel%==9 (
- goto :Menu9
- ) else if %errorlevel%==10 (
- goto :Menu10
- ) else if %errorlevel%==11 (
- goto :Menu11
- ) else if %errorlevel%==12 (
- goto :Menu12
- )
- pause
- goto :End
-
- :Menu1
- echo 选项1
- goto :End
-
- :Menu2
- echo 选项2
- goto :End
-
- :Menu3
- echo 选项3
- goto :End
-
- :Menu4
- echo 选项4
- goto :End
-
- :Menu5
- echo 选项5
- goto :End
-
- :Menu6
- echo 选项6
- goto :End
-
- :Menu7
- echo 选项7
- goto :End
-
- :Menu8
- echo 选项8
- goto :End
-
- :Menu9
- echo 选项9
- goto :End
-
- :Menu10
- echo 选项10
- goto :End
-
- :Menu11
- echo 选项11
- goto :End
-
- :Menu12
- echo 选项12
- goto :End
-
- :End
- pause
- exit /b
复制代码
作者: idwma 时间: 2023-7-21 21:14
本帖最后由 idwma 于 2023-7-21 21:43 编辑
应该可以实现
输一个数字延时1秒自动跳转,两个数字直接跳转- @echo off
- if defined c goto %c%
- echo 输入数字
- powershell "$env:c=$([Console]::ReadKey().KeyChar;$a=[datetime]::now;while(([datetime]::now-$a) -lt 10000000){if([Console]::KeyAvailable){[Console]::ReadKey().KeyChar;break}})-join'';'';cmd /c %~s0"
- pause
- goto :eof
-
- :1
- echo 1
- goto :eof
-
- :11
- echo 11
- goto :eof
复制代码
作者: cfan365 时间: 2023-7-21 21:44
额 如果不按回车 cmd怎么知道你输入的12是执行12还是1和2?
jyswjjgdwtdtj 发表于 2023-7-21 12:31
哦哦,涨知识了,的确是如此。我这非程序员的头脑还是不够严谨啊!
连回车都懒得按,真是可以额!
qixiaobin0715 发表于 2023-7-21 12:42
这不是懒嘛 因为之前使用过一些大神们的批处理,看他们输入几个数字后就自动执行了,所以想这样子
楼上的几个大佬们,包括管理员大大,谢谢您们了。
改天我试一试,大家的案例应该都符合。到时候都多打赏
作者: wh7288 时间: 2023-7-25 20:37
回复 5# Batcher
感谢分享,有机会测试学习下,谢谢.
作者: cfan365 时间: 2023-8-2 16:50
据我所知,输入数字1-12之后,必须输入回车啊,否则批处理如何取值你输入的值.
比如说,你想输入12,如果不输入 ...
wh7288 发表于 2023-7-21 11:05
挺好,但每一个缺少 goto :End命令行【参考了管理员的,自己理解的】,要不然会一直执行下去。
谢谢,稍后私信您,打赏您。
回复 wh7288
choice命令可以做到不回车的情况下获取用户输入
A代替10
B代替11
C代替12
Batcher 发表于 2023-7-21 15:26
和我手里的一个案例一样,使用的是choice,但它那个复杂,我之前改了几次都没有太成功。
谢谢,稍后私信您,打赏您。
回复 6# idwma
因双击.bat文件,cmd窗口偶尔会出现一直黑屏(无内容20s左右),所以您这个没有测试。
PS:第一次运行批处理.bat文件,
cmd窗口会一直黑着没内容,大约20s左右,才有选项提示。
简单百度了下,没有结果。
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |