中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [分享]高!实在是高!限时输入
作者:
标题: [分享]高!实在是高!限时输入 上一主题 | 下一主题
pusofalse
银牌会员




积分 1604
发帖 646
注册 2008-4-13
状态 离线
『楼 主』:  [分享]高!实在是高!限时输入

这是我刚收藏的批处理之家版主随风的帖子。。。分享下。。
要求:
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 ]

2008-5-9 23:50
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 2 楼』:  

……

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

如果是单个实现那就很……不过……那是无法实现的

2008-5-10 00:39
查看资料  发短消息 网志   编辑帖子  回复  引用回复
pusofalse
银牌会员




积分 1604
发帖 646
注册 2008-4-13
状态 离线
『第 3 楼』:  

总是在认为CMD只能单任务工作(虽然真是如此)。。。正是有了这个想法之后,便会先入为主的不去尝试打破这个既定的规则,真得是在方面产生了思维定向 果真是只有不断探索未知领域,才会取得久远的进步啊~

2008-5-10 01:02
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
plp626
银牌会员

钻石会员


积分 2278
发帖 1020
注册 2007-11-19
状态 离线
『第 4 楼』:  

限时输入原创来自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 [num] [:label1] [STR] [:LABEL2]
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 [num] [:label1] [STR] [:LABEL2]
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学习
2008-5-10 06:44
查看资料  发短消息 网志   编辑帖子  回复  引用回复
pusofalse
银牌会员




积分 1604
发帖 646
注册 2008-4-13
状态 离线
『第 5 楼』:  



  Quote:
Originally posted by plp626 at 2008-5-10 06:44 AM:
限时输入原创来自cn-dos
怎么成了我们转帖啦,真是。。。
[url]http://www.cn-dos.net/forum/viewthread.php?tid=3982 ...

啊!  抱歉抱歉。。。

2008-5-10 13:26
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
26933062
银牌会员





积分 2268
发帖 879
注册 2006-12-19
状态 离线
『第 6 楼』:  

倒不觉得有什么值得抱歉的地方,楼主声明转贴,说明楼主第一次看见此帖是在那个地方,同时也说明楼主对原创的尊重。
4楼回复 “怎么成了我们转帖啦,真是。。。”
并不是你所看过的帖子,别人也都看过,发现侵权行为你可以指出,但似乎不必用这样的口气。。。
况且作者也未必就是侵权,他难道就一定看过这篇帖吗?

[ Last edited by 26933062 on 2008-5-10 at 01:46 PM ]



致精致简!
2008-5-10 13:37
查看资料  发短消息 网志   编辑帖子  回复  引用回复
plp626
银牌会员

钻石会员


积分 2278
发帖 1020
注册 2007-11-19
状态 离线
『第 7 楼』:  



  Quote:
Originally posted by 26933062 at 2008-5-10 01:37 PM:
倒不觉得有什么值得抱歉的地方,楼主声明转贴,说明楼主第一次看见此帖是在那个地方,同时也说明楼主对原创的尊重。
4楼回复 “怎么成了我们转 ...

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

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

学习最重要。。。



山外有山,人外有人;低调做人,努力做事。

进入网盘(各种工具)~~ 空间~~cmd学习
2008-5-10 13:47
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: