标题: [其他] 批处理命令 set /p 限时输入,否则执行默认值 [打印本页]
作者: 随风 时间: 2008-5-8 10:25 标题: 批处理命令 set /p 限时输入,否则执行默认值
set /p 限时输入,否则执行默认值
5 秒内不输入内容并按回车,则限时“用户什么都没有输入”否则显示用户输入的内容。
代码思路来源与cn-dos的模拟线程。
http://www.cn-dos.net/forum/viewthread.php?tid=39880&fpage=1&highlight=%E7%BA%BF%E7%A8%8B
代码仍有一小小瑕疵,就是当不输入内容,执行默认值后,运行到代码的结尾,若不加exit则按任意键后,不会退出 cmd 窗口,不知如何解决。。
:- @echo off&title 2008-05-07
- color 1f
- if "%~1"=="loop" (
- ping/n 5 127.1>nul
- if not exist z: exit
- taskkill /f /pid %pid% >nul
- subst z: /d
- goto loop
- )
- subst z: "%cd%"
- for /f "skip=3 tokens=2" %%a in ('Tasklist /FI "IMAGENAME eq cmd.exe"') do (
- if not defined pid set "pid=%%a"
- )
- start /b %~s0 loop
- cls&echo.&set /p var= 请输入
- subst z: /d
- taskkill /im ping.exe /f >nul
- color fc
- if defined var (set var=用户输入的是:%var%) else set var=用户输入的是:回车
- :loop
- cls
- if not defined var set var=用户什么都没有输入
- echo.&echo %var%
- echo.&pause&exit
复制代码
没想到相同功能的帖已经在cn-dos有了,早知道就不用发这心思来写了。
http://www.cn-dos.net/forum/viewthread.php?tid=39828
若原作者 jvive 认为有必要,可短信联系我,我可以删除此帖。
作者: fml520 时间: 2008-5-9 17:11
太高深了,批处理不是按照顺序执行的吗????
作者: jvive 时间: 2008-5-10 06:41
恳请版主删除jvive的帖子
[ 本帖最后由 jvive 于 2009-1-8 18:37 编辑 ]
作者: 随风 时间: 2008-5-10 11:35
哦?
确实没注意到此帖,感谢 jvive 提醒,呵呵,原来我侵权了。。。
以在顶楼把作者(随风)信息去掉了。并把此帖由 原创区 移到 讨论区。
[ 本帖最后由 随风 于 2008-5-10 12:15 编辑 ]
作者: jvive 时间: 2008-5-10 14:00
恳请版主删除jvive的帖子
[ 本帖最后由 jvive 于 2009-1-8 18:36 编辑 ]
作者: Batcher 时间: 2009-1-8 20:14
全部删除?还是只删这两个?
作者: dali 时间: 2009-6-4 13:36
欣赏之 刚好要用到 记得以前看到过 一下就搜到了
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |