制表符制表 DOS批处理时间控制

制表符制表 DOS批处理时间控制,第1张

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 下获得 前几天的时间等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9476486.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存