看到网友有人问bat命令中如何做一个定时的任务,比如一分钟执行一次的问题。虽然以前也用过bat命令,但还真没有认真学习过里面的东西,今天找了点学习资料看了一下,也简单写了个bat命令,总结如下。
@echo off
set str="%time:~6,5%"
:: 标签,用于goto跳转
:next1
:: 判断str是不是空,如果不是则执行下边的语句
if "%str%"=="00.00" (
echo 开始执行,输出截取的字符串
echo str="%str%"
for /L %%c in (1,1,5) do echo %%c
)
::执行完毕后,重新设置时间
:: 截取时间中的秒
set str=%time:~6,5%
:: 跳转到next1标签: 这里利用goto和标签,构成循环结构
goto next1
:: 当以上循环结构执行完毕时,会执行下边的语句,不会执行到的
echo 执行完毕
@echo off表示运行的时候不再显示每条命令,只输出要求输出的内容,比如输出字符串echo str=“%str%”等;
::是注释标识,放在每一行的起始处,注意是英文的;
时间处理使用%time%参数,这个会显示当前点的系统时间,只是时间,比如在命令行下输入echo %time%得到的结果是9:12:53.28,会精确到毫秒;
~是用来截取字符串的,我们这里截取了秒和毫秒的长度为5的字符串用来进行事件的触发,如果截取的字符串等于00.00我们认为可以进行输出或者执行相应的程序了。
可能存在的问题,如果你的电脑配置非常高,而需要执行的程序又非常简单,如上面所示的输出5个数字,那么在执行上面代码时会得到多个输出,即在1毫秒内会输出多次,因为执行的太快了。