windows批处理中实现延时的办法

五种方法可以实现批出里的延时,推荐使用方法一,该方法也是使用最多的.

方法一 用ping命令延迟(这是最简单而且是最常见的):

@echo off

echo "use ping to delay"

set SLEEP=ping 127.0.0.1 /n

echo %time%

%SLEEP% 4 > nul

echo %time%

pause

方法二 还可以用for循环作延迟,例如:

@echo off

echo "use for to delay"

echo %time%

for /l %%i in (1,1,100) do echo %%i >nul

echo %time%

pause

方法三 用choice命令作延迟:例如

@echo off

echo "use choice to delay"

CHOICE /T 3 /C ync /CS /D y

if errorlevel 1 goto next

:next

:: /T:为暂停秒数(0~9999)这里是暂停10秒的意思

:: /D:为在 nnnn 秒之后(即/T设定的时间)指定默认选项。

:: /c:为指定要创建的选项列表。默认列表是 "YN"。若只作延迟,这里可以设置默认选项为y,暂停后通过if去到默认的标签处执行后面的命令。

:: 若想了解更多可以在cmd中输入choice/?

方法四 用vbs作延迟(可精确到毫秒):

@echo off

echo "use vbs to delay"

echo %time%

call :delay 3000

echo %time%

pause

exit

:delay

echo WScript.Sleep %1>delay.vbs

CScript //B delay.vbs

del delay.vbs

方法五 纯粹用bat延迟(最为复杂,可精确到毫秒):

@echo off

set /p delay=请输入需延迟的毫秒数:

set TotalTime=0

set NowTime=%time%

::读取起始时间,时间格式为:13:01:05.95

echo 程序开始时间:%NowTime%

:delay_continue

set /a minute1=1%NowTime:~3,2%-100

::读取起始时间的分钟数

set /a second1=1%NowTime:~-5,2%%NowTime:~-2%0-100000

::将起始时间的秒数转为毫秒

set NowTime=%time%

set /a minute2=1%NowTime:~3,2%-100

:: 读取现在时间的分钟数

set /a second2=1%NowTime:~-5,2%%NowTime:~-2%0-100000

::将现在时间的秒数转为毫秒

set /a TotalTime+=(%minute2%-%minute1%+60)%%60*60000+%second2%-%second1%

if %TotalTime% lss %delay% goto delay_continue

echo 程序结束时间:%time%

echo 设定延迟时间:%delay%毫秒

echo 实际延迟时间:%TotalTime%毫秒

pause

时间: 2025-01-02 08:29:36

windows批处理中实现延时的办法的相关文章

Windows批处理中获取日期和时间

编写Windows批处理时经常会需要使用到日期和时间作为文件名,所以是非常重要的. 如何获取日期呢?格式:  %date%结果:  2012-07-31 如何获取时间呢?格式:  %time%结果:  10:21:21.68 这是获取的系统标准格式的日期和时间,但是有时候我们需要使用规定的格式,怎么办呢? 格式:   %date:~x,y%以及%time:~x,y%说明:   x是开始位置,y是取得字符数 比如说我要获取完整的日期和时间,格式:   %date:~0,4%%date:~5,2%%

Windows 批处理中 setlocal enabledelayedexpansion 的作用

设置本地为延迟扩展.其实也就是:延迟变量,全称延迟环境变量扩展, 想进阶,变量延迟是必过的一关!所以这一部分希望你能认真看. 为了更好的说明问题,我们先引入一个例子.例1: ? 1 2 3 4 @echo off  set a=4  set a=5&echo %a%  pause 结果:4 解说:为什么是4而不是5呢?在echo之前明明已经把变量a的值改成5了?让我们先了解一下批处理运行命令的机制:批处理读取命令时是按行读取的(另外例如for命令等,其后用一对圆括号闭合的所有语句也当作一行),在

Windows编程中char*转LPCWSTR解决办法总结

Windows编程中经常涉及到的一个问题是字符串之间的转换,开发过程总是遇到编译器提示无法格式转换的问题,于是自己总结了几种解决办法. 1.通过T2W转换宏 char* szStr = "balabala"; CString str = CString(szStr); USES_CONVERSION; LPCWSTR wszClassName = new WCHAR[str.GetLength()+1]; wcscpy((LPTSTR)wszClassName,T2W((LPTSTR)

Windows批处理(cmd/bat)常用命令小结

转载自:“趣IT”微信公共号 前言 批处理文件(batch file)包含一系列 DOS命令,通常用于自动执行重复性任务.用户只需双击批处理文件便可执行任务,而无需重复输入相同指令.编写批处理文件非常简单,但难点在于确保一切按顺序执行.编写严谨的批处理文件可以极大程度地节省时间,在应对重复性工作时尤其有效. 在Windows中善用批处理可以简化很多重复工作 什么是批处理 批处理(Batch),也称为批处理脚本.顾名思义,批处理就是对某对象进行批量的处理.批处理文件的扩展名为bat. 目前比较常见

[转]Windows批处理(cmd/bat)常用命令小结

常用DOS命令 文件夹管理 cd 显示当前目录名或改变当前目录. md 创建目录. rd 删除一个目录. dir 显示目录中的文件和子目录列表. tree 以图形显示驱动器或路径的文件夹结构. path 为可执行文件显示或设置一个搜索路径. xcopy 复制文件和目录树. 文件管理 type 显示文本文件的内容. copy 将一份或多份文件复制到另一个位置. del 删除一个或数个文件. move 移动文件并重命名文件和目录.(Windows XP Home Edition中没有) ren 重命

Windows批处理(cmd/bat)常用命令

前言 批处理文件(batch file)包含一系列 DOS命令,通常用于自动执行重复性任务.用户只需双击批处理文件便可执行任务,而无需重复输入相同指令.编写批处理文件非常简单,但难点在于确保一切按顺序执行.编写严谨的批处理文件可以极大程度地节省时间,在应对重复性工作时尤其有效. 在Windows中善用批处理可以简化很多重复工作 什么是批处理 批处理(Batch),也称为批处理脚本.顾名思义,批处理就是对某对象进行批量的处理.批处理文件的扩展名为bat. 目前比较常见 的批处理包含两类:DOS批处

Windows 批处理(cmd/bat)常用命令教程

Windows批处理(cmd/bat)常用命令教程 简单详细,建议收藏 前言 批处理文件(batch file)包含一系列 DOS命令,通常用于自动执行重复性任务.用户只需双击批处理文件便可执行任务,而无需重复输入相同指令.编写批处理文件非常简单,但难点在于确保一切按顺序执行.编写严谨的批处理文件可以极大程度地节省时间,在应对重复性工作时尤其有效 在Windows中善用批处理可以简化很多重复工作 什么是批处理? 批处理(Batch),也称为批处理脚本.顾名思义,批处理就是对某对象进行批量的处理.

ubuntu gedit 打开 windows 分区中txt 文件乱码

http://blog.csdn.net/pipisorry/article/details/39482861 ubuntu 12.04 gedit 打开 windows 分区中的txt 文件乱码,是因为 ubuntu 和 windows 两个系统的编码不同. 解决办法1:(推荐) 终端里依次输入以下 2 条命令即可: gsettings setorg.gnome.gedit.preferences.encodings auto-detected "['GB18030','GB2312', 'G

【转】BAT批处理中的字符串处理详解(字符串截取)

下面对这些功能一一进行讲解. 1.截取字符串 截取字符串可以说是字符串处理功能中最常用的一个子功能了,能够实现截取字符串中的特定位置的一个或多个字符.举例说明其基本功能: @echo off set ifo=abcdefghijklmnopqrstuvwxyz0123456789 echo 原字符串(第二行为各字符的序号): echo %ifo% echo 123456789012345678901234567890123456 echo 截取前5个字符: echo %ifo:~0,5% ech