⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 延时.txt

📁 s11ss写的批处理。他把很多C语言中经典的例子都用批处理实现了
💻 TXT
字号:
@echo off
::Tested by s11ss 2007-11-29
::参考文章: 批处理编程的异类——时钟(Clock)[by Willsort]
::http://www.cn-dos.net/forum/viewthread.php?tid=8905#pid54227  第4楼
setlocal
if "%1" equ "" (
        echo 参数一是要使用的方法的序号,参数二是要延迟的毫秒数。
        echo 参数一:
        echo 1. for+set+if        最精确,但延时稍长一点就很占CPU使用率
        echo 2. for+cd.        循环800次大概是1秒
        echo 3. vbs:sleep        这个最常用,精确度也行,占CPU使用率较少
        echo 4. ping:w+0.0.0.1        ping1次大概是1秒
        echo 5. ping:127.0.0.1        较常用,ping1次大概是0.5秒
        echo 6. mshta:setTimeout        最烂的方法
        echo 例如,使用方法3延迟2秒:
        echo %0 3 2000
        pause
        goto :eof
)
set before=%time%& echo %time%                %延时前:这行以前(包括这行)%
call :delay%1 %2                                        %延时,参数1是要使用的方法的序号,参数2是要延迟的毫秒数%
set after=%time%&  echo %time%                %延时后:这行以后(包括这行)%

::相当烂的计算实际延迟的算法
set before=%before::=%&set after=%after::=%
set before=%before:.=%&set after=%after:.=%
set/a dif=%after%-%before%
if %dif% lss 100 set dif=00%dif%
if %dif% lss 1000 set dif=0%dif%
echo 实际延迟:%dif:~0,2%.%dif:~-2%秒
::相当烂的计算实际延迟的算法

pause
goto :eof








:delay1 for+set+if                        最精确,但延时稍长一点就很占CPU使用率
for /f "tokens=1-4 delims=:." %%h in ("%time%") do set start=%%h%%i%%j%%k
set/a v=%1/10
        :dc
        for /f "tokens=1-4 delims=:." %%h in ("%time%") do set now=%%h%%i%%j%%k
        set/a dif=%now%-%start%
        if %dif% LSS %v% goto :dc
goto :eof

:delay2 for+cd.                                循环800次大概是1秒
set/a v=%1*800/1000
for /l %%a in (1,1,%v%) do (cd.)
goto :eof

:delay3 vbs:sleep                        这个最常用,精确度也行,占CPU使用率较少
set/a v=%1-400
echo WScript.Sleep %v% >t.vbs
cscript //nologo t.vbs&del t.vbs
goto :eof

:delay4 ping:w+0.0.0.1                ping1次大概是1秒
set/a v=%1/1000
for /l %%a in (1,1,%v%) do ping -n 1 -w 200 1>nul
goto :eof

:delay5 ping:127.0.0.1                较常用,ping1次大概是0.5秒
set/a v=%1*2/1000
for /l %%a in (1,1,%v%) do ping -n 1 127.1>nul
goto :eof

:delay6 mshta:setTimeout        最烂的方法
set/a v=%1-1000
mshta javascript:moveTo(screen.width,screen.height);setTimeout('close()',%v%)
goto :eof

:delay7 sleep.exe                        涉及第三方工具,不便推广使用

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -