bat批处理延迟运行脚本(zz)

时间:2022-02-26 13:00:20

@echo off
:aaa
pause 这里是你需要运行的程序
for /l %%i in (0,1,10000) do echo %%i>nul
goto aaa

当然bat延迟运行还有其他的一些方法 不过我这个算很简单了 你还可以使用两个for代替goto
for /l %%i in (0,1,10000) do echo %%i>nul 这里>nul忽略输出
如果程序是无法自动回到cmd界面的那可能需要结束她的进程什么的 自然利用bat调用其他程序也能做到例如ntsd debug 等等 或者是vbs 不过那就显不出bat的特性出来了

ping延时还是很精确的,呵呵。
@echo off
:aaa
echo %TIME%
ping 0.0.0.1 -n 1 -w 500>nul
goto aaa
I:\>delay
18:51:41.50
18:51:42.42
18:51:43.42
18:51:44.42
18:51:45.42
18:51:46.42
18:51:47.42
18:51:48.42
18:51:49.42
18:51:50.42
18:51:51.42
18:51:52.42
18:51:53.42
18:51:54.42
18:51:55.42
18:51:56.42
^C终止批处理操作吗(Y/N)? y
Windows的ping.exe代码中调用了Sleep(1000),自然是很准确的。
ping的IP最好用127.0.0.1,因为用其他地址,第一次DNS解析会耗费一些时间,就不准确了。
收东西要收藏。我帮楼的各位大侠整理一下:
@echo off
@echo %time%
@set /a netu0=%1+1
@ping 127.0.0.1 -n %netu0% -w 500>nul 2>nul
@echo %time%
@echo on
============================================
为了提高工作效率,或者为了实现某种目的,我们经常需要将一些程序加入到windows的“启动”组中,也就是让这些程序随系统启动而自动运行。有时,我们希望这些自启动程序能按一定的先后顺序运行,对于服务器而言,可能有其中一个程序要依赖另一程序才能运行,因而还需要在这二个程序启动时有一定的时间延迟。
我发现,可以巧妙利用DOS下的批处理命令,来轻松控制自启动程序的运行先后顺利,以及程序的延迟运行。举例说明,假如有三个自启动程序,要求在windows启动时先运行C:\Patha\A.exe,等其执行完毕了再运行C:\Pathb\B.exe,至少延迟10秒后再运行C:\Pathc\C.exe,实现方法如下:
打开“记事本”,输入以下代码:
Start/w C:\Patha\A.exe
Start C:\Patha\B.exe
Ping 127.0.0.1 –n 10 >nul
Start C:\Patha\C.exe
将此文件保存为一个bat文件,例如qidong.bat。双击运行这个批处理文件,就可即刻验证各程序的启动顺序和延迟运行情况。最后将此文件拖入windows的“启动”组就OK了。当然,三个自启动文件是靠批处理文件来调用的,所以就不必放入“启动”组了。
对于上述批处理命令,作一下简单的介绍:
Start命令用于启动指定程序,其格式是:“start/参数 程序的完整路径和文件名”,参数/w的作用是等待当前的程序执行完毕再执行下一个程序。注意:由于批处理是在DOS下运行,类似“C:\ \Program files”这样带空格的文件夹名称,应该换成“C:\Progra~1”,即取前6个字符再加上“~1”。
因为批处理中没有延时的命令,所以用ping一个本地IP地址来间接实现延时,ping一次大概花费1秒钟,虽然时间不是很精确,但可修改-n后面的数字进行调试,使时间尽量接近,>nul的作用相当于是让ping命令在后台运行。
==============================================
一。利用计划任务
例:
@echo off
mode con lines=25
title 定时关机
color 1f
cls
echo.
echo.
echo.
echo.
echo 时间使用24小时制(如2:15、12:00),可以输入多个时间点
echo.
echo 多个时间点用空格分隔
echo.
echo.
echo ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
echo.
set times=
set /p times= 请输入关机时间:
:: 以下语句实现每个星期的每一天指定时间关机
:: 如果要换成每个月的某几天,请改字母为数字,并用逗号分隔
:: 以下代码没有错误检测语句,输入时间的时候务必按照指定格式输入
:: 可以用在CMD窗口用at命令来查看计划任务
if not "%times%"=="" for %%i in (%times%) do (
at %%i /every:M,T,W,Th,F,S,Su shutdown -s
)
二。巧妙利用ping -n
例:
@ rem ---------- 设置延迟时间 ----------
@ set 延迟时间=15
@ ping 127.0.0.1 -n %延迟时间%
以下写你要启动的命令
三。利用for命令
例:
@echo off
echo 将于4月20日执行关机任务
:xunhuan
echo %date%>1.ini
for /f "tokens=2,3 delims=- " %%a in (1.ini) do set h=%%a & set m=%%b
del 1.ini
if %h%==04 goto fen
goto xunhuan
:fen
if %m%==05 goto nao
goto xunhuan
:nao
shutdown -s -t 60
exit