中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-08 11:24
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [分享]高!实在是高!限时输入 查看 1,047 回复 6
楼 主 [分享]高!实在是高!限时输入 发表于 2008-05-09 23:50 ·  中国 山东 淄博 联通
银牌会员
★★★
积分 1,604
发帖 646
注册 2008-04-13 23:39
18年会员
UID 115804
性别 男
状态 离线
这是我刚收藏的批处理之家版主随风的帖子。。。分享下。。
要求:
set /p var= y,n ?
等待用户输入,若5秒内没有输入任何内容并按回车,则显示 “用户没有输入” 否则显示用户输入的内容。时间用 ping/n 5 127.1 >nul 来计算

下面是他的代码。。。 看后震惊~实在是太妙了!
@echo off&title code 随风 @bbs.bathome.cn 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


[ Last edited by pusofalse on 2008-5-10 at 01:29 PM ]
2 发表于 2008-05-10 00:39 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
……

不是单个进程……那当然……让另一个CMD结束自己……

如果是单个实现那就很……不过……那是无法实现的
3 发表于 2008-05-10 01:02 ·  中国 山东 淄博 联通
银牌会员
★★★
积分 1,604
发帖 646
注册 2008-04-13 23:39
18年会员
UID 115804
性别 男
状态 离线
总是在认为CMD只能单任务工作(虽然真是如此)。。。正是有了这个想法之后,便会先入为主的不去尝试打破这个既定的规则,真得是在方面产生了思维定向 果真是只有不断探索未知领域,才会取得久远的进步啊~
4 发表于 2008-05-10 06:44 ·  中国 陕西 西安 电信
银牌会员
★★★★
钻石会员
积分 2,278
发帖 1,020
注册 2007-11-19 13:34
18年会员
UID 103127
性别 男
状态 离线
限时输入原创来自cn-dos
怎么成了我们转帖啦,真是。。。
http://www.cn-dos.net/forum/viewthread.php?tid=39828
@echo off&if not "%1"=="" call%*&exit||{jvive@cn-dos.net|08-4-26}
::纯批实现等待指定输入
:begin
call:timeout 5 :tsk1 626 :tsk2
:tsk1
echo\&echo "默认计划"
echo\&echo 按回车键退出
exit

:tsk2
echo "自定义计划"
pause
exit

:: /*----------------- timeout --------------------
:timeout
setlocal&del/a/q %tmp%\' 2>nul||(echo 未知错误!&pause&exit)
start/b/REALTIME %~s0 :timeout_1 %1 %2 %3 %4
:timeout_2
set "v="
set/p v=
if %v%.==%3. title %ComSpec%&cd.>%tmp%\'&endlocal&goto%4
if exist %tmp%\' exit ::没有输入,退出timeout
goto:timeout_2
:timeout_1
for /l %%a in (%1 -1 0)do (
title 倒计时:%%a /输入:%3 跳过默认计划 %2/
if exist %tmp%\' title %ComSpec%&exit
ping/n 2 127.1 >nul)
title %ComSpec%&cd.>%tmp%\'&goto%2
:: /*------------------ timeout -------------------*/


http://www.cn-dos.net/forum/viewthread.php?tid=39880

::抽奖        {s11ss@www.cn-dos.net/forum 2008-4-28}
@echo off
if exist t del t
:m
if "%1" equ "-t" goto t
start /b %~s0 -t
echo 请按任意键停止. . .&pause>nul
cd.>t
start /b del t^&exit
echo 请按任意键开始. . .&pause>nul
goto m
:t
if exist t exit
title 获奖观众的号码是:%random%
goto t
山外有山,人外有人;低调做人,努力做事。

进入网盘(各种工具)~~ 空间~~cmd学习
5 发表于 2008-05-10 13:26 ·  中国 山东 淄博 联通
银牌会员
★★★
积分 1,604
发帖 646
注册 2008-04-13 23:39
18年会员
UID 115804
性别 男
状态 离线
Originally posted by plp626 at 2008-5-10 06:44 AM:
限时输入原创来自cn-dos
怎么成了我们转帖啦,真是。。。
http://www.cn-dos.net/forum/viewthread.php?tid=3982 ... 啊! 抱歉抱歉。。。
6 发表于 2008-05-10 13:37 ·  中国 湖南 娄底 电信
银牌会员
★★★
积分 2,268
发帖 879
注册 2006-12-19 16:23
19年会员
UID 73968
性别 男
状态 离线
倒不觉得有什么值得抱歉的地方,楼主声明转贴,说明楼主第一次看见此帖是在那个地方,同时也说明楼主对原创的尊重。
4楼回复 “怎么成了我们转帖啦,真是。。。”
并不是你所看过的帖子,别人也都看过,发现侵权行为你可以指出,但似乎不必用这样的口气。。。
况且作者也未必就是侵权,他难道就一定看过这篇帖吗?

[ Last edited by 26933062 on 2008-5-10 at 01:46 PM ]
致精致简!
7 发表于 2008-05-10 13:47 ·  中国 陕西 西安 电信
银牌会员
★★★★
钻石会员
积分 2,278
发帖 1,020
注册 2007-11-19 13:34
18年会员
UID 103127
性别 男
状态 离线
Originally posted by 26933062 at 2008-5-10 01:37 PM:
倒不觉得有什么值得抱歉的地方,楼主声明转贴,说明楼主第一次看见此帖是在那个地方,同时也说明楼主对原创的尊重。
4楼回复 “怎么成了我们转 ...


可能太热爱CN-DOS论坛了,只代表我一个人的感情。。。

以后注意,来CN-DOS的可能还有其他论坛的高人,以免人家说咱们不大气。。。。

学习最重要。。。
山外有山,人外有人;低调做人,努力做事。

进入网盘(各种工具)~~ 空间~~cmd学习
论坛跳转: