Board logo

标题: 【已解决,谢谢各位】求编写输入不同数字,则执行不同命令任务 [打印本页]

作者: 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
  1. @echo off
  2. choice /c 123456789ABC
  3. if %errorlevel%==1 (
  4.     goto :Menu1
  5. ) else if %errorlevel%==2 (
  6.     goto :Menu2
  7. ) else if %errorlevel%==3 (
  8.     goto :Menu3
  9. ) else if %errorlevel%==4 (
  10.     goto :Menu4
  11. ) else if %errorlevel%==5 (
  12.     goto :Menu5
  13. ) else if %errorlevel%==6 (
  14.     goto :Menu6
  15. ) else if %errorlevel%==7 (
  16.     goto :Menu7
  17. ) else if %errorlevel%==8 (
  18.     goto :Menu8
  19. ) else if %errorlevel%==9 (
  20.     goto :Menu9
  21. ) else if %errorlevel%==10 (
  22.     goto :Menu10
  23. ) else if %errorlevel%==11 (
  24.     goto :Menu11
  25. ) else if %errorlevel%==12 (
  26.     goto :Menu12
  27. )
  28. pause
  29. goto :End
  30. :Menu1
  31. echo 选项1
  32. goto :End
  33. :Menu2
  34. echo 选项2
  35. goto :End
  36. :Menu3
  37. echo 选项3
  38. goto :End
  39. :Menu4
  40. echo 选项4
  41. goto :End
  42. :Menu5
  43. echo 选项5
  44. goto :End
  45. :Menu6
  46. echo 选项6
  47. goto :End
  48. :Menu7
  49. echo 选项7
  50. goto :End
  51. :Menu8
  52. echo 选项8
  53. goto :End
  54. :Menu9
  55. echo 选项9
  56. goto :End
  57. :Menu10
  58. echo 选项10
  59. goto :End
  60. :Menu11
  61. echo 选项11
  62. goto :End
  63. :Menu12
  64. echo 选项12
  65. goto :End
  66. :End
  67. pause
  68. exit /b
复制代码

作者: idwma    时间: 2023-7-21 21:14

本帖最后由 idwma 于 2023-7-21 21:43 编辑

应该可以实现
输一个数字延时1秒自动跳转,两个数字直接跳转
  1. @echo off
  2. if defined c goto %c%
  3. echo 输入数字
  4. 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"
  5. pause
  6. goto :eof
  7. :1
  8. echo 1
  9. goto :eof
  10. :11
  11. echo 11
  12. 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