等待按键响应:
等待指定输入:
思路:
[ Last edited by jvive on 2008-4-30 at 09:05 AM ]
@echo off&if not "%1"=="" call%*&exit||{Jvive@cn-dos.net|08-4-26}
::纯批实现等待按键响应
:begin
call:timeout 8 :tsk1
:tsk1
echo msgbox "默认计划2">%tmp%\'.vbs
start %tmp%\'.vbs
echo 按回车键退出
exit
:: /*---------------timeout----------------------
:timeout
del/a/q %tmp%\' 2>nul||(echo 未知错误!&pause&exit)
start/b/REALTIME %~s0 :timeout_1 %1 %2
pause>nul
if exist %tmp%\' exit ::没有按键,退出timeout
title %ComSpec%&cd.>%tmp%\'&goto%2
:timeout_1
for /l %%a in (%1 -1 0)do (
title 倒计时:%%a /任意键跳过.../
if exist %tmp%\' title %ComSpec%&exit
ping/n 2 127.1 >nul)
title %ComSpec%&cd.>%tmp%\'&goto%2
:: /*--------------- timeout ---------------------*/等待指定输入:
@echo off&if not "%1"=="" call%*&exit||{Jvive@cn-dos.net|08-4-26}
::纯批实现等待指定输入
:begin
call:timeout 5 :tsk1 626 :tsk2
:tsk1
echo msgbox "默认计划">%tmp%\'.vbs
start %tmp%\'.vbs
echo\&echo 按回车键退出
exit
:tsk2
echo msgbox "自定义计划">%tmp%\'.vbs
start %tmp%\'.vbs
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 -------------------*/思路:
一个进程"pause"(实际上它还是处于执行态只是执行pause命令暂停罢了),另一个进程处于执行状态,若当这个进程变为也pause时,那么,不管这个进程的优先级有多高,按键输入只会响应第一个执行pause的进程,
[ Last edited by jvive on 2008-4-30 at 09:05 AM ]
进入网盘(各种工具)
