|
tomking
新手上路
积分 4
发帖 3
注册 2007-11-17
状态 离线
|
『楼 主』:
批处理菜单,如何做到在指定时间内不做选择,自动执行
比如代码如下:
@echo off
echo.
echo 1.打开C盘
echo.
echo 2.打开D盘
set /p var=请输入:
if %var%==1 goto :1
if %var%==2 goto :2
:1
start c:\
exit
:2
start d:\
exit
能否做到在10秒内不做任何选择,则执行标签1 或者2???
———————————————————————————————————————
转移自 DOS疑难解答 & 问题讨论 (解答室)
今后发帖请尽量发到对应的版块。注册也有一年多了,应该对论坛比较熟悉了。
——管理员
———————————————————————————————————————
|
|
2008-11-23 21:32 |
|
|
Climbing
铂金会员
网络独行侠
积分 6962
发帖 2753
注册 2003-4-16 来自 河北保定
状态 离线
|
『第
2 楼』:
用set /p肯定是实现不了的,可以考虑一下用choice.exe。
|
偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
|
|
2008-11-23 22:11 |
|
|
slore
铂金会员
积分 5212
发帖 2478
注册 2007-2-8
状态 离线
|
『第
3 楼』:
双BAT……
一个做监视。
|
S smile 微笑,L love 爱,O optimism 乐观,R relax 放松,E enthusiasm 热情...Slore |
|
2008-11-24 10:06 |
|
|
moniuming
银牌会员
永远的菜鸟
积分 1335
发帖 574
注册 2007-11-27 来自 广西
状态 离线
|
『第
4 楼』:
试试?
代码来源于:纯批实现等待按键响应|指定输入
@echo off
if not "%1"=="" call %*
del "%temp%\#" 2>nul
start /b %~fs0 :aa
echo.&echo 1.打开c盘 2.打开d盘
echo.&set/p var=请输入:
if exist "%temp%\#" (del "%temp%\#"&exit)
>"%temp%\#" type nul&ping -n 2 127.1>nul
goto :%var%
:1
start c:\&exit
:2
start d:\&exit
:aa
for /l %%a in (10 -1 0) do (
title 倒计时 %%a 秒,无选择将打开 c 盘...
if exist "%temp%\#" (
del "%temp%\#"
title 用户已作选择...
exit
)
ping -n 2 127.1>nul
)
>"%temp%\#" type nul&start c:\&title 回车退出...&exit
|
|
2008-11-24 11:20 |
|
|
tomking
新手上路
积分 4
发帖 3
注册 2007-11-17
状态 离线
|
『第
5 楼』:
Quote: | Originally posted by moniuming at 2008-11-24 11:20 AM:
试试?
代码来源于:纯批实现等待按键响应|指定输入
[code]@echo off
if not "%1"=="" call %*
d ... |
|
谢谢,但是如何默认执行后,就自动退出?一定要判断#文件才可以吗?或者执行后直接创建?不知道该如何实现,
|
|
2008-11-25 14:16 |
|
|
moniuming
银牌会员
永远的菜鸟
积分 1335
发帖 574
注册 2007-11-27 来自 广西
状态 离线
|
『第
6 楼』:
Quote: | Originally posted by tomking at 2008-11-25 14:16:
谢谢,但是如何默认执行后,就自动退出?一定要判断#文件才可以吗?或者执行后直接创建?不知道该如何实现, |
|
执行后自动退出是可以办到的,#这个文件是一定要进行判断的,不明白后面两问的意思,下面是执行后自动退出的代码:
@echo off
if not "%1"=="" call %*
del "%temp%\#" 2>nul
start /b %~fs0 :aa
echo.&echo 1.打开c盘 2.打开d盘
echo.&set/p var=请输入:
>"%temp%\#" type nul
goto :%var%
:1
start c:\&exit
:2
start d:\&exit
:aa
for /l %%a in (10 -1 0) do (
title 倒计时 %%a 秒,无选择将自动打开 c 盘...
if exist "%temp%\#" (
del "%temp%\#"
title 用户已作选择...
exit
)
ping -n 2 127.1>nul
)
start c:\&title 回车退出...
for /f "tokens=2" %%a in ('tasklist /fi "windowtitle eq 回车退出..." /nh') do (
taskkill /f /pid %%a
)
exit
|
|
2008-11-25 17:41 |
|
|
radem
高级用户
CMD感染者
积分 691
发帖 383
注册 2008-5-23
状态 离线
|
『第
7 楼』:
系统找不到文件 D:\test.batbat。
|
|
|
2008-11-25 18:04 |
|
|
moniuming
银牌会员
永远的菜鸟
积分 1335
发帖 574
注册 2007-11-27 来自 广西
状态 离线
|
『第
8 楼』:
回7楼
我想应该不是找不到文件,而是输入了1或2之外的字符出现"系统找不到指定的批处理标签"的提示(由于是一闪而过没看清?),增加下面的除错处理应该没问题了.
@echo off
if not "%1"=="" call %*
del "%temp%\#" 2>nul
start /b %~fs0 :aa
echo.&echo 1.打开c盘 2.打开d盘
:agn
echo.&set "var="&set/p var=请输入:
>"%temp%\#" type nul
for %%a in (1 2) do (if "%%a"=="%var%" goto :%var%)
del "%temp%\#"&echo "%var%"是错误的选择!&goto :agn
:1
start c:\&exit
:2
start d:\&exit
:aa
for /l %%a in (10 -1 0) do (
title 倒计时 %%a 秒,无选择将自动打开 c 盘...
if exist "%temp%\#" (
del "%temp%\#"
title 用户已作选择...
exit
)
ping -n 2 127.1>nul
)
start c:\&title 回车退出...
for /f "tokens=2" %%a in ('tasklist /fi "windowtitle eq 回车退出..." /nh') do (
taskkill /f /pid %%a
)
exit
|
|
2008-11-28 15:13 |
|