批处理之家's Archiver

随风 发表于 2008-4-20 06:38

批处理模拟秒表

[code]@echo off&title 秒表
::code 随风 @bbs.bathome.cn   2008-05-02
if "%~1"=="" color 4a&mode con cols=35 lines=4
set cls=
for /l %%i in (1,1,100) do call,set cls=%%cls%%
:list
if "%~1"=="loop" cls&echo 按任意键暂停&goto loop
subst z: "%cd%"
start /b %~s0 loop
pause>nul
subst z: /d
pause>nul
goto list
:loop
  if not exist z: (
    cls&echo 按任意键重新开始
    set /p=             %aa:~-2%:%ab:~-2%:%ac:~-2%.%ad:~-2%<nul
    exit
  )
  set /a d="(d+1)%%100,c=(c+!d)%%60,b+=!(c+d),a+=!(b+c+d)"
  for %%a in (a b c d) do call set a%%a=0%%%%a%%
  set /p=           %aa:~-2%:%ab:~-2%:%ac:~-2%.%ad:~-2%<nul
  set /p=%cls%<nul  
goto loop[/code]

jsj30651 发表于 2008-4-20 12:36

有个问题啊,那个“cls=%%cls%%”中的退格键怎么打出来的啊?

随风 发表于 2008-4-20 13:07

::退格键的输入方法 
无法直接用批处理打出来。
开始、运行。。。依次运行下面的内容。
cmd
edit
ctrl+p
alt+08
保存,退出。

garyng 发表于 2011-9-1 20:35

跟真的很像~
可以拿来计时了~

111 发表于 2012-11-24 16:20

太不准了,我发个简单点的[code]@echo off
mode con cols=40 lines=5
title 简易秒表
echo.
echo      按任意键开始计时……
pause>nul
set js=0
:m
cls
echo.
echo      已过了%js%秒
echo      ctrl+c暂停或退出。
set /a js=%js%+1
ping 127.1 -n 2 >nul
goto m[/code]

111 发表于 2012-11-24 16:20

太不准了,我发个简单点的[code]@echo off
mode con cols=40 lines=5
title 简易秒表
echo.
echo      按任意键开始计时……
pause>nul
set js=0
:m
cls
echo.
echo      已过了%js%秒
echo      ctrl+c暂停或退出。
set /a js=%js%+1
ping 127.1 -n 2 >nul
goto m[/code]

BAT-VBS 发表于 2012-11-24 16:32

[b]回复 [url=http://www.bathome.net/redirect.php?goto=findpost&pid=121279&ptid=903]6#[/url] [i]111[/i] [/b]


    你要实现跟楼主一样的功能,然后再来比较代码长短吧。

Clarkky 发表于 2013-1-31 13:41

[code]@echo off
title 简易秒表  By: Clark 1623911526@qq.com
mode con cols=46 lines=4
PUSHD "%temp%"
call :sleep
echo.
echo      按任意键开始计时。。。
pause>nul
set s=0
set ms=0
:loop
cls
if %ms%==10 set /a ms=0
echo.
echo      已过了%s%.%ms%秒
echo      Ctrl+C暂停或退出。
if %ms%==9 set /a s=%s%+1
set /a ms=%ms:~0,1%+1
"%temp%"\sleep.exe 100
goto loop

:sleep
@echo ^<package^>^<cab xmlns:dt="urn:schemas-microsoft-com:datatypes" dt:dt="bin.base64"^> >xx
@echo TVNDRgAAAACvAQAAAAAAACwAAAAAAAAAAwEBAAEAAAAAAAAARgAAAAEAAQAABAAAAAAAAAAA>>xx
@echo P0IyaiAAc2xlZXAuZXhlAANlt9ZhAQAEQ0vzjQpgZGRgYGAB4v//GRgCQBwgcGAgDCYA8Z99>>xx
@echo jQz823z+pxleSjM84FmhsEbHoEjEhrNcIC37Elca4yG942z6DIYMr5/o/VfTZ+BjSMu89IKZ>>xx
@echo gSGt82LawZcCW9rOiu5g8DmrCDMzwJWBwQfoooDKpWYwsQcM/IzcjKw8DEwIu+sEgAQIK0Bd>>xx
@echo C2IzQfzBwICgwfJQfcxgUgCiFk7DKQgbyNEgwu8kAwFUe9CBXklqRQmQvgNzEBPC3UheeUBt>>xx
@echo Z4UB7UoB4jKo49yQHGkhwIDT0d6uQX6uPsZGeik5OZimMDC4VmSWBBTlJ6cWFwN57qklzvm5>>xx
@echo uYl5KT6ZeamOQJHgnNTUAob/oiwCDgyGlzwcGiwYSgQbLJRKmb5f4rxU+r7BQqH0lcOfzmOG>>xx
@echo lwwPrOE4UKIMTFeiwHQlCExWjIeOs54EajwLxK8f/VcFsZcCcdB/UQ4glQU0l0GAmBQ8>>xx
@echo CgA=>>xx
@echo ^</cab^>^<job^>^<script language="VBScript"^> >>xx
@echo Set xml = CreateObject("Microsoft.XMLDOM")>>xx
@echo xml.load WScript.ScriptFullName>>xx
@echo Set stm = CreateObject("ADODB.Stream")>>xx
@echo stm.Open : stm.Type = 1 >>xx
@echo stm.Write xml.documentElement.childNodes.item(0).nodeTypedValue>>xx
@echo stm.SaveToFile "xx.cab">>xx
@echo ^</script^>^</job^>^</package^> >>xx
@rename xx xx.wsf
@cscript.exe //nologo xx.wsf
@expand.exe -r xx.cab>nul
@del xx.wsf & del xx.cab
POPD
goto :eof
[/code]本来还想写个带分钟显示的

pichuli2019 发表于 2019-7-31 16:13

大神,这个能解释下吗,秒表是怎么实现的呢

LJY4.0 发表于 2022-5-1 10:13

[b]回复 [url=http://www.bathome.net/redirect.php?goto=findpost&pid=222370&ptid=903]9#[/url] [i]pichuli2019[/i] [/b]

延时+变量

永远的中国 发表于 2022-5-15 17:37

保存为哪种编码格式呢

668674 发表于 2022-8-22 17:32

都是高手啊,学习了。

页: [1]

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.