dos程序有
time /t,可以显示当前时间。
但是要将其值取出并存入一个变量,然后将该变量加1。这样可以获得1秒后的时间。
用at 命令可以在指定的时间运行某个程序,但是我在dos下实验不成功,可能是其他设置的问题。
这里有几个问题:
第一,为了获取当前时间,可以将time /t的输出存到文本里,如
echo set timeval= >gettimebat
time /t >>gettimebat
这样是在gettimebat里输入了两行内容,
set timeval=
11:42
想要将11:42这个时间存入timeval,需要将两行和并为1行。这就需要写一个简单的文本过滤程序,将其中的'\n''\r'换行符去掉。然后可以运行gettimebat来将timeval的值设置为当前系统时间。
2将timeval值的分钟数取出来。
现在timeval=11:42
可以用命令 set timeval=%timeval:~0,2%取出11。这时timeval=11
然后 set /a timeval+=1
现在timeval=12
3用同样的方法可获得当时的秒数。
4然后你可以用一个无限循环语句再次用第1、2步中的方法取当前系统时间,一旦系统时间达到(或超过——因为获取时间的循环中可能不错过某一秒,这是因为我们的处理比较繁琐)timeval1(分钟)、timeval2(秒)中变量的值,则认为达到指定时间,则可以退出循环,执行当前所要执行的命令。
dos中的循环可以用标签和goto语句来实现
:label
如果时间未到达,
goto labe
否则,goto nextcommand
========================================
其中要用编程语言写一个去除换行符的程序,这个比较简单。最复杂的是判断时间到达活超过指定时间。这个不能忘了考虑秒数。因为你如果在11分58秒执行的话,2秒后,就会到12分。所以要综合考虑。
当然最好的是用其他写好的程序来实现。自己用dos来完成,会比较曲折坎坷。
=====================
或许你可以参考一些vb写的定时脚本,那个比较简单,可惜我不会vb,不过网上很多。
这个问题看似简单,却很麻烦
要考虑的因素太多
要区分大月小月(即一月是30天还是31天 )
要计算是否是闰年 (对2月的特殊处理)
这里附上 对时间的字符截取示例 详见TEST2015BAT
需要注意的还有
以2015-01-01为例
我把月份拆分为0和9
因为加减只能对数字才能使用 否则会意外终止运行
这里你要判断 月份的前一位 是不是 0 (即 09不能视为数字 也不能进行算术)是 0的话只能将9(即月份的第二位)转为数字 转数字的方法是 SET /A
对日的处理一样 还要注意 2015-01-01 的前一天是2014-12-31 这里也要处理
希望能对你要说帮助
你的方法是不行的
set today=%date:~0,4%%date:~5,2%%date:~8,2%set /p pass=How many days before
if %pass% lss %date:~8,2% (
set /a beforedate=%date:~8,2%-%pass%
set before=%date:~0,4%%date:~5,2%%beforedate%
goto output
)
set /a before=%pass%-%date:~8,2%
set /a beforemonth=%date:~5,2%-1
set /a beforedate=31-%before%
if %beforemonth% lss 1 (
set /a beforeyear=%date:~0,4%-1
set /a beforemonth=12
) else (
set beforeyear=%date:~0,4%
)
:output
开机过程按 小键盘上的 Del 键就是小数点 进入系统设定状态是蓝色的屏幕
进去按第一个选择(Standard CMOS Features)就是 时间设定了 自己设定就可以了
设定完成之后按 F10 选择 Y 就是保存你的设置啦
我先警告你 只能选择第一个设置就可以 如果你好奇乱选出现系统故障进不去电脑开不开机 可不是我的错!!!!
dos下可以显示日期,使用date命令,可以显示时间,使用time命令,无法显示市区。具体 *** 作步骤如下:
1、点击开始,点击运行,输入cmd,点击确定;
2、提示符后输入date,回车;
3、如果不修改,直接回车即可;
4、提示符后输入time,回车;
5、如果不修改,直接回车即可。
当天日期
c:\>ren 目标文件名 %date:~0,10%后缀
例如c:\ren aaadoc %date:~0,10%doc
结果2008-11-13doc
当天时间
c:\>ren 目标文件名 %time:~0,4%后缀
结果 0:37doc
当天日期+当天时间
c:\>ren 目标文件名 %date:~0,10%_%time:~1,4%后缀
结果2008-11-13_0:37doc
'bs代码如下
a=date-1
msgbox a
'另存为:昨天日期vbs 运行就可以
至于P处理我不会 ,冲网络上给你改了段代码过来了
@echo off
echo wscriptecho dateadd("d",-1,date) >%tmp%\tmpvbs
for /f "tokens=1,2,3 delims=-" %%i in ('cscript /nologo %tmp%\tmpvbs') do (
set "y=%%i"
set "m=%%j"
set "d=%%k"
)
set "nowdate=%y%%m%%d%"
echo %nowdate:~2%
pause
以上就是关于制表符制表 DOS批处理时间控制全部的内容,包括:制表符制表 DOS批处理时间控制、dos命令中,如何取给定日期的前一天的日期、DOS 下获得 前几天的时间等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)