标题: [文本处理] 批处理倒计时,按任意键终止,执行其他操作? [打印本页]
作者: zhoubin 时间: 2013-12-20 16:32 标题: 批处理倒计时,按任意键终止,执行其他操作?
本人菜鸟,求助大师:
我改了一个批处理,主要是安装pe系统的,下面截取了一部分,这一部分不太理想,求大师们帮我看看,这里面的主要问题是用了cls清屏命令,把我这一段代码之前的提示信息都清掉了(我猜测是cls引起的),我的要求是不用cls命令的倒计时批处理,按任意键中止,去执行一个标签,倒计时结束,自动执行另外一个标签,怎么写?- 其他代码,很长,略。。。。
-
- ::@Echo Off
- ::PUSHD %~dp0
- ::call :ChoiceLegacy
- call :CountDown
- :Nt6id
- goto :eof
-
- :ChoiceLegacy
- ::ping 127.0.0.1 -n 1 1>nul 2>nul
- :Select
- Echo.
- Echo 目标分区如果是Windows 8以上系统、非触摸屏电脑、且有物理键盘,可以使用键盘选择传统字符登录界面,〖请问〗:
- Echo.
- SET Choice=
- SET /P Choice=启用传统字符登录界面菜单吗?(y键启用传统字符登录界面,推荐其他键默认登录方式)
- ECHO.
- IF NOT "%Choice%"=="" SET Choice=%Choice:~0,1%
- IF /I "%Choice%"=="y" call :legacy
- goto :eof
-
- :legacy
- %Windir%\System32\bcdedit.exe /store %target%\Boot\BCD /set {default} bootmenupolicy legacy
- goto :eof
-
- :CountDown
- echo;___倒计时___>%temp%\sleep
- start /b "" %Windir%\System32\cmd.exe /c "pause>nul&del %temp%\sleep"
- SETLOCAL ENABLEDELAYEDEXPANSION
- for /L %%a in (20,-1,1) do (
- Echo.
- Echo 目标分区如果是Windows 8以上系统、非触摸屏电脑、且有物理键盘,可以使用键盘选择传统字符登录界面,推荐默认登录方式,〖请问〗:
- Echo.
- echo 启用传统字符登录界面菜单吗?按任意键取消倒计时选择登录方式
- Echo.
- echo 程序将在 〖%%a〗 秒钟后自动启用默认登录方式......
- %Windir%\System32\ping.exe -n 2 localhost 1>nul 2>nul
- cls
- ENDLOCAL
- if not exist %temp%\sleep goto ChoiceLegacy
- )
- goto :eof
复制代码
作者: zhoubin 时间: 2013-12-20 16:39
自问自答一下:
我在百度贴吧里,找了一篇,就没有用cls命令,可是我没看懂,不会改,提供给老师们参考一下。。。- @echo off
- if "%~1"=="按任意键退出" goto :%1
-
- >"%temp%\.sub" cd.
- start "" /b %0 按任意键退出
- set 退格键=
-
- for /l %%a in (10 -1 1) do (
- set /p =%退格键%%%a 秒后开始备份文件... [按任意键退出] <nul
- if not exist "%temp%\.sub" exit
- ping -n 2 127.1 >nul
- )
-
- echo,
- echo 备份完成。
-
- echo 按任意键退出...
- exit
-
- :按任意键退出
- pause >nul
- del "%temp%\.sub"
- exit
复制代码
贴吧的地址:
十分精彩的倒计时代码,转自批处理之家
作者: 522235677 时间: 2013-12-20 17:54
choice可以
C:\Users\Admin>choice /?
CHOICE [/C choices] [/N] [/CS] [/T timeout /D choice] [/M text]
描述:
该工具允许用户从选择列表选择一个项目并返回所选项目的索引。
参数列表:
/C choices 指定要创建的选项列表。默认列表是 "YN"。
/N 在提示符中隐藏选项列表。提示前面的消息得到显示,
选项依旧处于启用状态。
/CS 允许选择分大小写的选项。在默认情况下,这个工具
是不分大小写的。
/T timeout 做出默认选择之前,暂停的秒数。可接受的值是从 0
到 9999。如果指定了 0,就不会有暂停,默认选项
会得到选择。
/D choice 在 nnnn 秒之后指定默认选项。字符必须在用 /C 选
项指定的一组选择中; 同时,必须用 /T 指定 nnnn。
/M text 指定提示之前要显示的消息。如果没有指定,工具只
显示提示。
/? 显示此帮助消息。
注意:
ERRORLEVEL 环境变量被设置为从选择集选择的键索引。列出的第一个选
择返回 1,第二个选择返回 2,等等。如果用户按的键不是有效的选择,
该工具会发出警告响声。如果该工具检测到错误状态,它会返回 255 的
ERRORLEVEL 值。如果用户按 Ctrl+Break 或 Ctrl+C 键,该工具会返回 0
的 ERRORLEVEL 值。在一个批程序中使用 ERRORLEVEL 参数时,将参数降
序排列。
示例:
CHOICE /?
CHOICE /C YNC /M "确认请按 Y,否请按 N,或者取消请按 C。"
CHOICE /T 10 /C ync /CS /D y
CHOICE /C ab /M "选项 1 请选择 a,选项 2 请选择 b。"
CHOICE /C ab /N /M "选项 1 请选择 a,选项 2 请选择 b。"
作者: zhoubin 时间: 2013-12-21 12:25
本帖最后由 zhoubin 于 2013-12-21 13:06 编辑
郁闷,只有一人回复。。。
谢谢楼上的。。。
我去找找choice!!!
作者: lifei259 时间: 2013-12-21 21:04
你二楼的代码就能用,你为什么还有找
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |