[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[其他] [已解决]批处理怎么实现按任意键退出,倒计时执行后面的代码?

怎么可以实现按任意键退出,倒计时执行后面的代码?坛子里的代码SET/P会影响后面的执行。
不用第三方命令。
1、有倒计时
2、在倒计时过程中可以按任意键退出
3、倒计时结束自动执行后面的代码
4、执行后面的代码时不再受按任意键退出的影响[]

[ 本帖最后由 asdfghasdfgh 于 2011-1-29 21:50 编辑 ]
1

评分人数

    • hanyeguxing: 感谢给帖子标题标注[已解决]字样PB + 2

如果不用第三方……很难做到
至少我做不到

TOP

给你一段本论坛的代码:
  1. @echo off
  2. if not "%1"=="" goto %1
  3. del "%temp%\#" 2>nul
  4. start /b %~fs0 :aa
  5. :agn
  6. set/p=按任意键退出...<nul&pause>nul
  7. >"%temp%\#" type nul
  8. exit
  9. :aa
  10. for /l %%a in (10 -1 1) do (
  11.    title 倒计时 %%a 秒后自动退出...
  12.    if exist "%temp%\#" (
  13.       del "%temp%\#"
  14.       exit
  15.    )
  16.    ping -n 2 127.1>nul
  17. )
  18. title 自动退出...
  19. for /f "tokens=2" %%a in ('tasklist /fi "windowtitle eq 自动退出..." /nh') do (
  20.    taskkill /f /pid %%a >nul
  21. )
  22. exit
复制代码
原帖http://www.bathome.net/redirect. ... amp;goto=nextnewset

TOP

原帖由 liion631818 于 2011-1-25 17:06 发表
给你一段本论坛的代码:@echo off
if not "%1"=="" goto %1
del "%temp%\#" 2>nul
start /b %~fs0 :aa
:agn
set/p=按任意键退出...nul
>"%temp%\#" type nul
exit
:aa
for /l %%a in (10 -1 1) do (
   ti ...


此代码用的SET/P,如果倒计时不是退出而是执行后面的代码,会出问题!

TOP

  1. @echo off
  2. if "%~1"=="按任意键退出" goto :%1
  3. >"%temp%\.sub" cd.
  4. start "" /b %0 按任意键退出
  5. set 退格键=
  6. for /l %%a in (10 -1 1) do (
  7.     set /p =%退格键%%%a 秒后开始备份文件... [按任意键退出] <nul
  8.     if not exist "%temp%\.sub" exit
  9.     ping -n 2 127.1 >nul
  10. )
  11. echo,
  12. echo 备份完成。
  13. echo 按任意键退出...
  14. exit
  15. :按任意键退出
  16. pause >nul
  17. del "%temp%\.sub"
  18. exit
复制代码

[ 本帖最后由 tmplinshi 于 2011-1-26 21:03 编辑 ]

TOP

原帖由 tmplinshi 于 2011-1-26 01:34 发表
@echo off
if "%~1"=="按任意键退出" goto :%1

>"%temp%\.sub" cd.
start "" /b %0 按任意键退出
set 退格键=

for /l %%a in (10 -1 1) do (
    set /p =%退格 ...


厉害,这段代码确实好用,以前都没想到,学习了~~

TOP

原帖由 tmplinshi 于 2011-1-26 01:34 发表
@echo off
if "%~1"=="按任意键退出" goto :%1

>"%temp%\.sub" cd.
start "" /b %0 按任意键退出
set 退格键=

for /l %%a in (10 -1 1) do (
    set /p =%退格 ...


这个代码执行完了必须要按一下任意键才能退出,可否直接就退出呢?

TOP

回复 7楼 的帖子

顶楼不是说要实现按任意键退出吗,怎么现在又变了?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

原帖由 Batcher 于 2011-1-26 12:53 发表
顶楼不是说要实现按任意键退出吗,怎么现在又变了?


没有变,我再叙述一遍:
1、有倒计时
2、在倒计时过程中可以按任意键退出
3、倒计时结束自动执行后面的代码
4、执行后面的代码时不再受按任意键退出的影响

谢谢,可能是之前没表诉清楚。

TOP

自己顶一下 求解!!

TOP

回复 9楼 的帖子

那就在顶楼重新表述一下吧
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 7楼 的帖子

  1. @echo off
  2. if "%~1"=="按任意键退出" goto :%1
  3. >"%temp%\.sub" cd.
  4. start "" /b %0 按任意键退出
  5. set 退格键=
  6. for /l %%a in (10 -1 1) do (
  7.     set /p =%退格键%%%a 秒后开始备份文件... [按任意键退出] <nul
  8.     if not exist "%temp%\.sub" exit
  9.     ping -n 2 127.1 >nul
  10. )
  11. echo,
  12. echo 备份完成。
  13. del "%temp%\.sub"
  14. title 正在退出...
  15. taskkill /im cmd.exe /fi "windowtitle eq 正在退出..."
  16. :按任意键退出
  17. pause >nul
  18. del "%temp%\.sub"
  19. exit
复制代码

[ 本帖最后由 tmplinshi 于 2011-1-26 20:29 编辑 ]
2

评分人数

TOP

版主的退格符用的真是巧秒啊,学习了

TOP

学习一下,顶一下,增加人气。

TOP

自己对代码的不熟悉,其实在大家的帮助下问题早就解决,谢谢各位!

TOP

返回列表