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 认为有必要,可短信联系我,我可以删除此帖。
|