- 浏览: 17653 次
最新评论
延时批处理
- 博客分类:
- 技术杂绘
延时批处理
2012年01月12日
举个例子,我们要延时5秒打开gdh.txt这个文件,可以用以下几个方法
方法一:ping
缺点:时间精度为1秒,不够精确
@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
误差评定: 很低
优点: 精确度最高,使用更灵活,方便
缺点: 产生临时文件,内存占用多
@echo off
set /a Start=%time:~6,2%
:ProDelay
set /a Now=%time:~6,2%
set /a Diff=%Now%-%Start%
rem 以下这一句可以防止秒数从59跳到1时产生的错误。
if %Diff% lss 0 set /a Diff=%Diff%+60
if %Diff% leq 2 gotoroDelay
echo ok!
一个取代choice命令的批处理 (精典)
@echo off && setlocal && cls
:tou
chcp 437 >nul
graftabl 936 >nul
set /p=请选择 [ 回车键 --- 执行A 其它键 --- 执行B ]: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
逐字显示:我是一个中国人
@echo off
for %%a in (我 是 一 个 中 国 人) do ping -n 2 127.0|set /p b=%%a
for /d %%a in (我 是 一 个 中 国 人) do set /p b=%%anul
::自注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
) 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
对比延时
@echo off
set /a Start=%time:~6,2%
:ProDelay
set /a Now=%time:~6,2%
set /a Diff=%Now%-%Start%
rem 以下这一句可以防止秒数从59跳到1时产生的错误。
if %Diff% lss 0 set /a Diff=%Diff%+60
if %Diff% leq 2 gotoroDelay
echo ok!
利用选择延时
@echo off && setlocal && cls
:tou
chcp 437 >nul
graftabl 936 >nul
set /p=请选择 [ 回车键 --- 执行A 其它键 --- 执行B ]:nul
echo.&echo.&echo.
if [%errorlevel%]==[13] ( goto :A ) else ( goto :B )
脚本:将一下内容复制,粘贴记事本中,另存为run.vbs。把脚本放在
C:\Documents and Settings\你的名字\「开始」菜单\程序\启动
wscript.sleep 36000
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.run("D:/工具与备份/maxthon/maxthon.exe")
发表评论
-
MTD NAND Analysis 1
2012-01-20 08:14 722MTD NAND Analysis 1 2011年05月06 ... -
内存映射对于大文件的使用
2012-01-20 08:14 666内存映射对于大文件的使用 2011年04月28日 平时很 ... -
rtems 下linkcmd分析代码
2012-01-20 08:14 988rtems 下linkcmd分析代码 2010年11月09日 ... -
连傻瓜都能看懂的基于代码注入的线程守护技术
2012-01-20 08:14 1662连傻瓜都能看懂的基于 ... -
mmap内存映射操作之一
2012-01-20 08:14 1082mmap内存映射操作之一 2011年06月09日 本博客 ... -
S7-300 PLC的串口无线通讯在火电厂污水处理中的应用
2012-01-19 13:31 687S7-300 PLC的串口无线通讯 ... -
IIS32位和64位切换
2012-01-19 13:31 870IIS32位和64位切换 2011年12月22日 X64 ... -
两平台下的自动登录telnet设置
2012-01-19 13:30 645两平台下的自动登录telnet设置 2011年12月28日 ... -
ActionScript垃圾回收
2012-01-17 03:20 965ActionScript垃圾回收 2011年10月26日 ... -
计算机故障大全(二)
2012-01-17 03:20 642计算机故障大全(二) 2010年06月02日 硬盘 ... -
琢石成器――windows环境下32位汇编语言程序设计(第三版)笔记
2012-01-17 03:20 2086琢石成器――windows环境下32位汇编语言程序设计(第三版 ... -
WinCE驱动开发问题精华集锦
2012-01-17 03:20 600WinCE驱动开发问题精华 ... -
钢蹦爸爸的自白
2012-01-16 01:54 669钢蹦爸爸的自白 2009年10月24日 怀着复杂的心情 ... -
爱韩庚的100个理由
2012-01-16 01:54 634爱韩庚的100个理由 2009 ... -
火车上的随想
2012-01-16 01:54 553火车上的随想 2011年02 ... -
jbpm3通过processDefinition.createProcessInstance()为什么能保存ProcessInstance之迷
2012-01-11 01:53 711jbpm3通过processDefinition.create ... -
Android自定义VIEW取得XML的自定义值
2012-01-11 01:53 675Android自定义VIEW取得XML的自定义值 2011年 ... -
常用的正则表达式--Java
2012-01-11 01:53 715常用的正则表达式--Java 2011年08月01日 是 ... -
图片传输问题,IO操作
2012-01-11 01:52 591图片传输问题,IO操作 2011年08月01日 原题: ... -
jsp编码过滤器的配置和使用-用心做程序-iteye技术网站
2012-01-11 01:52 693jsp编码过滤器的配置和使用-用心做程序-iteye技术网站 ...
相关推荐
本篇文章将详细讲解如何创建一个延时启动批处理脚本,以及如何使用这个名为"Delay Run App.cmd"的特定脚本来在指定的秒级别延迟后启动应用程序。 首先,我们要理解批处理脚本的基本结构。一个批处理脚本本质上是一...
批处理延时启动应用程序或执行指令,其中300是延时300S的意思
本压缩包"tomcat_批处理延时命令bat@计划任务"提供的内容恰好聚焦于这个主题,它涉及到如何利用批处理脚本来启动Tomcat服务器,并通过计划任务实现自动化的开机启动。 首先,我们要理解什么是Tomcat。Tomcat是一款...
Sleep.exe用于命令行程序 批处理 延时用的,占用资源少。本来也是批处理生成出来的,关于生成方法网上有许多。
CSDN的朋友有福了,想下载破解版超级嗅探狗的朋友在这免积分提供下载了,不过其实并不是真正意义上的破解,只不过不断将15天的限制时间重置...原创的批处理文件还有一个暂停和任意键继续,取消后可以完美加入计划任务。
利用bat批处理程序实现10秒延时 实现方法简单,使用方便
高精度延时是批处理中一个关键的技巧,特别是在需要精确控制时间间隔的场景下。通常,`PING`命令被用来实现延迟,但它的精度有限。通过使用特别设计的算法,可以减少启动程序的时间,从而实现大约10-20毫秒级别的...
通过以上解释,我们可以看到,创建一个能延时启动程序的BAT文件并不复杂,只需要理解基本的批处理命令和参数传递机制。这种技巧在日常系统管理和自动化流程中非常实用,特别是在需要控制程序启动顺序的场景下。
- **仅用批处理命令实现任意时间延迟**:利用批处理命令进行精确到10毫秒级别的延时。 - **模拟进度条**:通过循环输出字符的方式模拟进度条。 - **特殊字符的输入及应用**:在批处理中使用特殊字符,如`%`,`&`,`(`...
- **精确延时脚本**:利用`TIMEOUT`命令实现延迟,可以精确控制脚本执行间的间隔。 - **数值计算脚本**:批处理中可以使用`SET /A`进行简单的算术运算,但不支持浮点数。 - **网络类脚本**:可能包括连接网络、...
- **精确延时工具**:使用`timeout`命令实现精确的延时,常用于脚本间隔执行。 - **其它类**:可能包含特定用途的批处理脚本,如文本处理、日志生成等。 - **网络类**:包括下载、上传、端口扫描等网络相关操作。...
时间延迟的技巧,包括使用ping命令和for命令进行延时操作,模拟进度条的方法,特殊字符的输入及应用,以及随机数的使用和变量嵌套与命令嵌套。 教程在编写过程中注重对错误的修正,以及对内容的不断更新和补充,...
9. **时间延迟** 使用ping、for、vbs和批处理命令实现不同精度的延时。 10. **模拟进度条** 在批处理中创建视觉反馈。 11. **特殊字符输入及应用** 处理特殊字符,如控制字符和非ASCII字符。 12. **变量嵌套与命令...
- **时间延迟**:实现任务间的延时。 - **模拟进度条**:通过动态显示来指示任务进度。 通过上述内容的介绍,我们可以看到批处理不仅仅是一种简单的命令集合,它还具备强大的逻辑处理能力,能够完成复杂的数据处理...
这是一个调用`tsshutdn`命令的例子,用于在指定延时时间(这里是5秒)后重启系统。`nul`输出被忽略,使得命令执行过程中不显示任何输出信息。 #### :quit 标签定义,用于标记脚本执行的终点。 #### @ENDLOCAL 此...
在Windows操作系统中,批处理脚本(.bat文件)是一种常用的自动化工具,它允许用户通过命令行执行一系列命令。然而,与Linux环境不同,Windows批处理脚本内建的命令中并没有提供类似于Linux `sleep`命令的功能,用于...
这是一个用批处理调用VBS的小程序!功能是经过用户规定的时间后,来运行用户指定的程序、文件! 呵呵,可能还是有点不明白什么意思,比如说,点击下载了本程序后,双击它,就会弹出一个对话框提示说“请输入延时时间...
第一章 批处理基础 第一节 常用批处理内部命令简介 1、REM 和 :: 2、ECHO 和 @ 3、PAUSE 4、ERRORLEVEL 5、TITLE 6、COLOR 7、mode 配置系统设备 8、GOTO 和 : 9、FIND 10、START 11、assoc...
例如,它可能会通过循环和延时命令来实现,每经过一定时间,进度条就会向前移动一点,直到达到预设的100%。 在批处理脚本中,可以使用以下常见命令来实现类似功能: 1. `ECHO`:输出文本到控制台,常用来绘制进度条...
如果需要确保服务已经关闭或启动,可以加入延时和循环检查的逻辑。 在执行批处理文件时,尤其需要注意的是,由于对系统服务的操作涉及到权限问题,因此必须以管理员权限运行批处理文件。不正确地运行可能会导致命令...