DOS批处理延时技术

举个例子,我们要延时5秒打开gdh.txt这个文件,可以用以下几个方法
方法一:ping 
缺点:时间精度为1秒,不够精确   www.2cto.com  
@echo off 
@ping 127.0.0.1 -n 6 >nul
start gdh.txt
方法二:vbs start /wait
缺点:生成临时文件 
有点:时间精度为0.001秒,精度高
@echo off
echo wscript.sleep 5000>sleep.vbs
start /wait sleep.vbs
start gdh.txt 
del /f /s /q sleep.vbs
方法三:vbs cscript. 
@echo off 
echo wscript.sleep 5000>sleep.vbs
@cscript sleep.vbs >nul
start gdh.txt 
del /f /s /q sleep.vbs
方法四:choice 
优点:时间精确,CPU占用低,是最佳选择 
@echo off 
choice /t 5 /d y /n >nul
start gdh.txt
批处理延时方法小结:
1.ping 
@echo off
:loop
    echo %time%
    ping 127.1 -n 2 1>nul 
    echo %time%
goto loop
内存使用: cmd.exe 1704k
              ping.exe 2920k    
误差评定: 较高
优点:       代码构造简单
缺点:       内存占用高,延迟时间长的话误差相对较大。
2.还是ping 
@echo off
:loop
    echo %time%
    ping 1 -n 1 -w 1000 2>nul 1>nul
    echo %time%
goto loop
内存使用: cmd.exe 1700k
               ping.exe 2912k
误差评定: 一般
优点:        代码构造简单,时间越长误差越小,精确度较高(50ms)
缺点:        内存占用高
3.call 
CODE:   
@echo off
:loop
    echo %time%
    call :delay 1000
    echo %time%
goto loop
:delay
    set /a num=num + 1
    if %num% geq %1 (set num=) && goto :eof
rem    for /l %%i in (1,1,%1) do echo. >nul
goto :eof
内存使用: cmd.exe 1744k [for语句方案]
               cmd.exe 1740k [set+goto方案]
误差评定: 很高 (受CPU频率影响非常大,几乎无法准确把握全局延迟时间)
优点:       精确度较高
缺点:        不适合需精确把握时间的场合
4.msg 
CODE:   
@echo off
:loop
    echo %time%
    msg %username% /time:20 /w "正在延时,点确定可以取消延时!"
    echo %time%
goto loop内存使用: cmd.exe 1752k
               msg.exe 2620k
误差评定: 低
优点:       比较稳定,可中途取消延时,代码构造简单
缺点:        内存占用非常大,有窗口弹出(优点?缺点?)
5.vbs 
CODE:   
@echo off
    echo Wscript.Sleep WScript.Arguments(0) >%tmp%\delay.vbs
:loop
    echo %time%
    cscript //b //nologo %tmp%\delay.vbs 2000
    echo %time%
goto loop
内存使用: cscript.exe 4812k
               cmd.exe    1708k
误差评定: 很低
优点:        精确度最高,使用更灵活,方便
缺点:        产生临时文件,内存占用多
一个取代choice命令的批处理 (精典)
@echo off && setlocal && cls
:tou
chcp 437 >nul
graftabl 936 >nul
set /p=请选择 [ 回车键 --- 执行A             其它键 --- 执行B ]:<nul
echo exit|cmd/kprompt $_e 100 CD 16 B4 4C CD 21$_g$_|debug>nul
echo.&echo.&echo.
if [%errorlevel%]==[13] ( goto :A ) else ( goto :B )
:A
::按回车符到这里执行
echo 这里是标签: A
echo.
goto :End
:B
::按其它键到这里执行
echo 这里是标签: B
echo.
goto :End
:End
::     用于测试键值的代码段
::     如果希望代替Choice外部命令,则这个代码段可以测试出不同的键值交由%ErrorLevel%判断
echo 所输入的ASCII码键值: %errorlevel%
echo.&echo.&echo.&echo.&echo.&Pause
cls
goto tou
@echo off
:go
cls
echo 计算机将于 17:40 关机
echo 现在时间是 %time% 
echo %time% >time.txt 
find /i "17:48" time.txt >nul
if %errorlevel%==1 goto go 
taskkill /f /im cmd.exe 
exit
实时显示当前时间
@echo off 
echo %time:~0,-3% 
ping -n 2 127.1>nul&cls&%0
::第二行代码说明:“:”和 “~”必不可少!“~”后的数字:为正数表示舍弃输出结果的前几位;直接跟负数表示取到输出结果的后第几位。逗号后的数字:为正数表示取到输出结果的前第 几位;为负数表示舍弃输出结果的后几位。echo %date:~4% echo %time:~-3% echo %date:~4% %time:~0,-3%
现在我有一条路径:c:\windows\system32\ 
我想删除最后一个字符"\"变为c:\windows\system32 
set "str=c:\windows\system32\" 
echo %str:~0,-1%
逐字显示
@echo off&color 0a&title 做语文老师真不容易 
set /p= <nul
set /p= (alt+数字键盘22为退格键,可在记事本中键入)<nul
for /d %%a in (做 个 语 文 老 师 真 不 容 易 . 以 下 是 学 生 的 造 句 ) do set /p=%%a<nul&ping -n 1 127.1>nul
逐字显示:我是一个中国人
@echo off
for %%a in (我 是 一 个 中 国 人) do ping -n 2 127.0|set /p b=%%a
for /d %%a in (我 是 一 个 中 国 人) do set /p b=%%a<nul&ping -n 1 127.1>nul
::自注set后面的%%a如果添加空格,效果是:我 是 一 个,不加空格,效果是:我是一个
@echo off&setlocal enabledelayedexpansion
set "str=http://bbs.cn-dos.net"
for /l %%a in (0 1 50) do (
      if "!str:~%%a,1!" neq "" (
          set/p=!str:~%%a,1!<nul
          for /l %%i in (1 1 400) do echo.>nul
         ) else (
         pause>nul&exit/b
     )
)
计划任务设定 
SCHTASKS /Create /SC DAILY /RU administrator /RP HZF /TN HU /SD 2008/11/21 /ST 21:30:00 /TR c:\windows\system32\notepad.exe

DOS批处理延时技术相关推荐

  1. 克隆技术与DOS批处理命令

    一.克隆工具: Ghost工具如下: 磁盘克隆: 1.磁盘克隆到另一个磁盘,会将被克隆磁盘数据覆盖.方法local→disk→to disk 2.磁盘写成镜像文件.方法local→disk→to im ...

  2. DOS批处理高级教程:第七章 DOS批处理编程高级技巧(转)

    DOS批处理高级教程:第一章 批处理基础 DOS批处理高级教程:第二章 DOS循环for命令详解 DOS批处理高级教程:第三章 for命令中的变量 DOS批处理高级教程:第四章 批处理中的变量 DOS ...

  3. 利用Java+DOS批处理实现网站刷流量

    最近开了个小店,木流量更木信誉,虽然东西已经便宜到要低于进价了. 在不断向广大亲朋好友推荐的同时,想身为程序猿的我应该要做些什么,于是想到能否编程刷流量,网上一大堆刷流量的软件不敢用,搞不好店就得关门 ...

  4. DOS批处理的字符串功能

    DOS批处理的字符串功能 批处理有着具有非常强大的字符串处理能力,其功能绝不低于C语言里面的字符串函数集.批处理中可实现的字符串处理功能有:截取字符串内容.替换字符串特定字段.合并字符串.扩充字符串等 ...

  5. DOS批处理高级教程:第三章 FOR命令中的变量(转)

    DOS批处理高级教程:第一章 批处理基础 DOS批处理高级教程:第二章 DOS循环for命令详解 DOS批处理高级教程:第三章 for命令中的变量 DOS批处理高级教程:第四章 批处理中的变量 DOS ...

  6. Dos批处理中符号作用大全

    Dos批处理中符号作用大全 2007-07-14 10:43 @  \\隐藏命令的回显. ~  \\在for中表示使用增强的变量扩展:  在set中表示使用扩展环境变量指定位置的字符串:  在set/ ...

  7. DOS批处理中%cd%和%~dp0的区别

    DOS批处理中%cd%和%~dp0的区别 在DOS的批处理中,有时候需要知道当前的路径. 在DOS中,有两个环境变量可以跟当前路径有关,一个是%cd%, 一个是%~dp0.   这两个变量的用法和代表 ...

  8. Dos批处理编程常用命令

    Dos批处理编程常用命令 打印输出交互 echo:打印输出.比如:echo 哈哈哈  就在dos页面里输出"哈哈哈" echo .:输出空行.[注意空格和点哈] echo off: ...

  9. DOS批处理不支持将UNC 路径作为当前目录的巧妙解决方案

    DOS批处理不支持将UNC 路径作为当前目录的巧妙解决方案 参考文章: (1)DOS批处理不支持将UNC 路径作为当前目录的巧妙解决方案 (2)https://www.cnblogs.com/liuz ...

最新文章

  1. 小李飞刀:python请你轻轻轻点虐
  2. ROS探索总结(十六)(十七)(十八)(十九)——HRMRP机器人的设计 构建完整的机器人应用系统 重读tf 如何配置机器人的导航功能
  3. struts配置详解
  4. PathRemoveFileSpec函数
  5. 数据洪流时代,开发者这样硬核突围!
  6. SAP License:FI权限需要控制利润中心
  7. 弥合安全和开发间隙的四个关键点
  8. [GIT] warning: LF will be replaced by CRLF问题解决方法
  9. 『ACM C++』 PTA 天梯赛练习集L1 | 048-49
  10. 再暴BBSxp 7.0 Beta 2漏洞
  11. SylixOS 网络文件系统 nfs 的使用
  12. jeesite应用实战(数据增删改查),认真读完后10分钟就能开发一个模块
  13. 用Python转码恢复乱码中文
  14. 看一篇就学会系列,mysql慢日志查看,本地mysql是使用phpstudy安装的
  15. redis 学习笔记
  16. 为UBUNTU安装一个像千千静听一样的MP3播放器
  17. 《奇葩说》救猫还是救画,我做了认真的分析
  18. 理论+实操 :华为NAT地址转换
  19. 【报错】部署portainer可视化工具报错
  20. 【iOS开发】相册选择图片识别条形码

热门文章

  1. PNAS:别开灯睡觉了,既损害心血管健康,还会增加患糖尿病风险
  2. 把RNN植入体内,仅凭一张“薄片”,就能直接检测你有无心律异常 | Science子刊...
  3. 湖南大学让晶体管小至3纳米,沟道长度仅一层原子 | Nature子刊
  4. 高颜值的神经网络可视化工具:3D、彩色、可定制,还能可视化参数重要性 | 开源...
  5. Spring Boot 入门之基础篇(一)
  6. Rails源码笔记-ActiveSupport-core_ext-date
  7. OPM攻击事件后:我们从中学到了什么?
  8. (原创)我对未来的人类的发展,以及AI技术发展的一些思考。
  9. POI按照源单元格设置目标单元格格式
  10. C# 调用WinRar解压压缩包