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

[其他] 无需第三方,去掉用户在批处理等待时输入的东西

大家都知道,如果用户在一个批处理在等待时(比如显示某组号码5秒时)输入东西,等下set /p时,就会出现刚才输入的东西

这等于给了“记数字”玩家作弊的机会,比如以下代码:
  1. @echo off
  2. cls
  3. set a=%random:~0,1%%random:~0,1%%random:~0,1%%random:~0,1%%random:~0,1%
  4. echo 给你3秒记住这组数字:%a%
  5. ping -n 4 127.1>nul
  6. cls
  7. set /p num=现在输入:
  8. echo.
  9. if "%a%"=="%num%" (echo 你输入对了) else (echo 你输入错了)
  10. pause>nul
  11. exit
复制代码
要作弊是易如反掌的,我在批处理显示“给你3秒……”时输入数字,等下set /p时就写出来了……

为此我就写了一个代码,不完美但起码实现无三方去掉用户在批处理等待时输入的东西
  1. @echo off
  2. if "%1"=="apple" goto apple
  3. if "%1"=="apple2" goto apple2
  4. start /b "" %0 apple
  5. start /b "" %0 apple2
  6. echo 现在不能输入,需等待4秒……
  7. ping -n 5 127.1>nul
  8. echo abc>abc
  9. cls
  10. echo.
  11. echo 现在按两次enter,看到enter: 时就输入
  12. pause>nul
  13. erase /f /q abc>nul 2>nul
  14. erase /f /q abc2>nul 2>nul
  15. set /p a=Enter:
  16. echo.
  17. echo 你输入了%a%
  18. pause
  19. exit
  20. :apple
  21. set /p =
  22. if exist abc echo abc>abc2&exit
  23. goto apple
  24. :apple2
  25. set /p = <nul
  26. if exist abc2 exit
  27. goto apple2
复制代码
为何批处理不适合做界面
为何随风讨厌call命令
http://bbs.bathome.net/thread-4482-1-10.html

发现代码可以更简单:
  1. @echo off
  2. if "%1"=="apple2" goto apple2
  3. start /b "" %0 apple2
  4. echo 现在不能输入,需等待4秒……
  5. ping -n 5 127.1>nul
  6. echo abc>abc2
  7. cls
  8. echo.
  9. echo 现在按一次enter,看到enter: 时就输入
  10. pause>nul
  11. erase /f /q abc2>nul 2>nul
  12. set /p a=Enter:
  13. echo.
  14. echo 你输入了%a%
  15. pause
  16. exit
  17. :apple2
  18. set /p = <nul
  19. if exist abc2 exit
  20. goto apple2
复制代码
为何批处理不适合做界面
为何随风讨厌call命令
http://bbs.bathome.net/thread-4482-1-10.html

TOP

突然发现自己摆了乌龙

原来…… 加一个pause>nul就行了……
  1. @echo off
  2. echo 现在不能输入,需等待4秒……
  3. ping -n 5 127.1>nul
  4. cls
  5. echo.
  6. echo 现在按一次enter,看到enter: 时就输入
  7. pause>nul
  8. set /p a=Enter:
  9. echo.
  10. echo 你输入了%a%
  11. pause
  12. exit
复制代码
为何批处理不适合做界面
为何随风讨厌call命令
http://bbs.bathome.net/thread-4482-1-10.html

TOP

回复 4# CUer


    如果他真的要这样做,我也没有办法~ 反正这个游戏就是为了让人锻炼脑袋的~ 他这样做明显没有好处,浪费他的时间罢了
    这个代码就好比考试时禁止看书的规则,有好过没有,如果考生硬要作弊也没有办法啊~
为何批处理不适合做界面
为何随风讨厌call命令
http://bbs.bathome.net/thread-4482-1-10.html

TOP

回复 6# bluewing009


    对choice没好感,一按错就会吵死人……
为何批处理不适合做界面
为何随风讨厌call命令
http://bbs.bathome.net/thread-4482-1-10.html

TOP

回复 11# garyng


按照你们这么说,就是说这类游戏没有意义的?
算了…… 反正批处理就不是拿来做游戏的……
不喜欢就算了……
为何批处理不适合做界面
为何随风讨厌call命令
http://bbs.bathome.net/thread-4482-1-10.html

TOP

返回列表