[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
原帖由 tmplinshi 于 2011-1-26 20:14 发表
@echo off
if "%~1"=="按任意键退出" goto :%1

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

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


太高深了
有人能给我讲下这段吗?
for /l %%a in (10 -1 1) do (
    set /p =%退格键%%%a 秒后开始备份文件... [按任意键退出] <nul
    if not exist "%temp%\.sub" exit
    ping -n 2 127.1 >nul
)
我一直没弄明白"%temp%\.sub"这个文件怎么会一按下键盘就消失的

TOP

呵呵
厉害
大概看懂了
牛b

TOP

pause 这个用的很好!!!

TOP

那段代码的关键不在退格符或者for什么的,而在于start /b,借此实现单窗口双进程,并用临时文件互通有无,这构思的确精彩绝伦

TOP

此代码用的SET/P,如果倒计时不是退出而是执行后面的代码,会出问题!
asdfghasdfgh 发表于 2011-1-25 17:09

请问楼主,如果倒计时不是退出而是执行后面的代码,会出什么问题!
  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 Windows2000
  19. color 1f
  20. mode con lines=10
  21. set work=0
  22. set n=0
  23. set mo=0
  24. set number=0
  25. set all=60
  26. set time=%all%
  27. :show
  28. :check
  29. if %number% GTR %mo% set num=%num%▉&set /a mo=%mo%+1&goto check
  30. :2
  31. cls
  32. echo  进度: %n% / %all%                                          剩余时间:%time%秒
  33. echo.
  34. echo.
  35. echo                                  完成 %work% %%%
  36. echo.
  37. if not "%num%"=="" echo       %num%
  38. if not "%num%"=="" echo       %num%
  39. if %work%==100 goto end
  40. ping 127.1 -n 1 >nul
  41. set /a n=%n%+1
  42. set /a time=%all%-%n%
  43. set /a work=(%n%)*100/(%all%)
  44. set /a number=%work%/3
  45. set /a number=%number%+1
  46. goto show
  47. endlocal
  48. :end
  49. title 正在退出...
  50. taskkill /im cmd.exe /fi "windowtitle eq 正在退出..."
复制代码

TOP

返回列表