中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已解决]用VBS获取系统当前时间添加at任务
« [1] [2] »
作者:
标题: [已解决]用VBS获取系统当前时间添加at任务 上一主题 | 下一主题
hackhd
中级用户





积分 231
发帖 102
注册 2008-1-25
状态 离线
『第 16 楼』:  

已经考虑到了。
所以。


a=Wsh.Run("at "&hour(now)&":"&((minute(now)+5) mod 60)&" 1.vbs",0,False)

问题解决

2008-1-26 21:41
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 17 楼』:  

算了吧直接给你代码算了,at不支持上午下午的,还要格式化24小时制的
NewTime = Split(Time, ":" ,-1)
if NewTime(1)+5 > 59 Then
   mm=NewTime(1)+5-60
   Newnn=Split(NewTime(0), " " ,-1)
   if Newnn(1)+1 = 13 Then
      nn="01"
      else
      nn=Newnn(1)+1
      end if
   Times = Newnn(0) & " " & nn & chr(58) & mm & chr(58) & NewTime(2)
   else
   Times = NewTime(0) & chr(58) & NewTime(1)+5 & chr(58) & NewTime(2)
end if

dim wsh
set wsh=createobject("wscript.shell")
set fso=createobject("scripting.filesystemobject")
command = "at " &Chr(34) & FormatDateTime (Times ,vbShortTime) &Chr(34) &" 1.vbs"
retodate=wsh.Run(command),vbHide




第一高手    第二高手

2008-1-26 21:44
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 18 楼』:  

hour(now)&":"&((minute(now)+5) mod 60
哦之前,知道有这样计算方法,就是不知道参数怎么写



第一高手    第二高手

2008-1-26 21:54
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 19 楼』:  

f
Newnn=Split(NewTime(0), " " ,-1)
这句你那里是通的麽?

h?
你那叫考虑了?你那样要等1天才运行吧?

12:56+5=13:01

你那样到12:01去执行……也叫考虑了。。。

2008-1-26 22:35
查看资料  发短消息 网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 20 楼』:  

Newnn=Split(NewTime(0), " " ,-1)
   if Newnn(1)+1 = 13 Then
      nn="01"
      else
      nn=Newnn(1)+1
      end if
已经转换了



第一高手    第二高手

2008-1-26 22:59
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 21 楼』:  

NewTime(0)里面不包含空格……你这个是什么意思啊?
按空格分割后,newnn(1)是不存在的……你那样就下标越界了……

第一次将time分割后,0 1 2分别是h,m,s

2008-1-26 23:02
查看资料  发短消息 网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 22 楼』:  

Wscript.echo Time
下午空格HH:MM:SS

  Quote:
TimeTmp="下午 12:56:00"
NewTime = Split(TimeTmp, ":" ,-1)
if NewTime(1)+5 > 59 Then
   mm=NewTime(1)+5-60
   Newnn=Split(NewTime(0), " " ,-1)
   if Newnn(1)+1 = 13 Then
      nn="01"
      else
      nn=Newnn(1)+1
      end if
   Times = Newnn(0) & " " & nn & chr(58) & mm & chr(58) & NewTime(2)
   else
   Times = NewTime(0) & chr(58) & NewTime(1)+5 & chr(58) & NewTime(2)
end if
Wscript.echo Times
Wscript.echo FormatDateTime (Times ,vbShortTime)





第一高手    第二高手

2008-1-26 23:14
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 23 楼』:  

2种代码能达到楼主的目的讨论没有意义了



第一高手    第二高手

2008-1-26 23:19
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 24 楼』:  



  Quote:
Originally posted by fastslz at 2008-1-26 23:19:
2种代码能达到楼主的目的讨论没有意义了

。。。。是说当系统选用24制的时候是不会出现“下午 ”字样的……
这个代码的移植性……

他的代码没有做进位虽然是1句话……

我是说这个问题。。。与方法无关。

2008-1-26 23:22
查看资料  发短消息 网志   编辑帖子  回复  引用回复
hackhd
中级用户





积分 231
发帖 102
注册 2008-1-25
状态 离线
『第 25 楼』:  

哦也。讨论得还真激烈。当然我一句话只是达到我的目的,因为我不需要上午下午的判断 只要系统当时间+5就行了。

大家讨论的也对。是另一种思路

不管什么方法。我只希望代码能尽量的精简

[ Last edited by hackhd on 2008-1-26 at 11:29 PM ]

2008-1-26 23:27
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zh159
金牌会员




积分 3687
发帖 1467
注册 2005-8-8
状态 离线
『第 26 楼』:  

就一个DateAdd
Wscript.echo FormatDateTime(DateAdd("n",5,now),vbShortTime)




2008-1-27 01:14
查看资料  发短消息 网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 27 楼』:  

晕DateAdd函数原来这么简单,之前我把它复杂化了
Vbs时间换算太灵活了
vbs脚本如果英语基础好的话,写脚本如同写短句,之所以中国软件业不如后来居上印度也是因为本地化语言障碍。



第一高手    第二高手

2008-1-27 14:35
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
hackhd
中级用户





积分 231
发帖 102
注册 2008-1-25
状态 离线
『第 28 楼』:  

Wsh.Run "at "&hour(now)&":"&((minute(now)+5) mod 60)&" 1.vbs",0,False
                   FormatDateTime(DateAdd("n",5,now),vbShortTime)
也不错啊。。

2008-1-27 19:07
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: