中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-07 12:49
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已解决]用VBS获取系统当前时间添加at任务 查看 2,873 回复 27
楼 主 [已解决]用VBS获取系统当前时间添加at任务 发表于 2008-01-26 06:04 ·  中国 湖南 常德 电信
中级用户
★★
积分 231
发帖 102
注册 2008-01-25 23:45
18年会员
UID 109557
性别 男
状态 离线
比如说现在一个VBS脚本运行起来在退出这个脚本前(因为前面有do loop语句所以运行后不会自动退出)

获取当前系统时间。只要分钟就好了 ,然后在获得的当前时间上+个5分钟,再运行这个VBS脚本

简单点说就像
at 系统当前时间(分钟)+5(分钟) xx.vbs
wscript.quit

[ Last edited by hackhd on 2008-1-27 at 07:24 PM ]
2 发表于 2008-01-26 12:28 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
msgbox time自己mid吧
3 发表于 2008-01-26 18:37 ·  中国 湖南 常德 电信
中级用户
★★
积分 231
发帖 102
注册 2008-01-25 23:45
18年会员
UID 109557
性别 男
状态 离线
这样不行哦。
4 发表于 2008-01-26 19:07 ·  中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493
发帖 2,315
注册 2006-05-01 10:41
20年会员
UID 54766
性别 男
来自 上海
状态 离线
Times = Time
NewTime = Split(times, ":" ,-1)
Wscript.echo NewTime(1)+5
'完整写法
Wscript.echo Time & "====加5分钟是====" & NewTime(0) & chr(58) & NewTime(1)+5 & chr(58) & NewTime(2)
第一高手 第二高手

5 发表于 2008-01-26 19:30 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
上面最后一句是Times
6 发表于 2008-01-26 19:31 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
貌似没有做55处理……
7 发表于 2008-01-26 19:57 ·  中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493
发帖 2,315
注册 2006-05-01 10:41
20年会员
UID 54766
性别 男
来自 上海
状态 离线
是的其实首句是多余的,没做55+处理,我怕数字计算
NewTime = Split(time, ":" ,-1)
Wscript.echo NewTime(1)+5
Wscript.echo Time & "====加5分钟是====" & NewTime(0) & chr(58) & NewTime(1)+5 & chr(58) & NewTime(2)
第一高手 第二高手

8 发表于 2008-01-26 19:58 ·  中国 湖南 常德 电信
中级用户
★★
积分 231
发帖 102
注册 2008-01-25 23:45
18年会员
UID 109557
性别 男
状态 离线
获取时间方法4楼说得很清楚了。谢谢啊。我把它整合起来添加一个DOS任务怎么就出错呢。
dim wsh
set wsh=createobject("wscript.shell")
set fso=createobject("scripting.filesystemobject")
Times = Time
NewTime = Split(times, ":" ,-1)
command="at "&NewTime&"(1)+5 "&"1.vbs"
retodate=wsh.Run(command,0,true)
9 发表于 2008-01-26 20:03 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
你msgbox下你的command就知道你自己错哪里了
10 发表于 2008-01-26 20:12 ·  中国 湖南 常德 电信
中级用户
★★
积分 231
发帖 102
注册 2008-01-25 23:45
18年会员
UID 109557
性别 男
状态 离线
现在这样子已经以提示了command这行类型不匹配了
后面加msgbox没用。我是个菜菜还烦大哥再指点指点
11 发表于 2008-01-26 20:22 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
command = "at " & NewTime & "(1)+5 " & "1.vbs"

你照4楼的修改……

NewTime是个数组……

不能单独,你的括号引用错误了。。。
12 发表于 2008-01-26 21:04 ·  中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493
发帖 2,315
注册 2006-05-01 10:41
20年会员
UID 54766
性别 男
来自 上海
状态 离线
整点55分钟+5 及12点+1=01完整代码
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
Wscript.echo Time & "====加5分钟是====" & Times
第一高手 第二高手

13 发表于 2008-01-26 21:23 ·  中国 湖南 常德 电信
中级用户
★★
积分 231
发帖 102
注册 2008-01-25 23:45
18年会员
UID 109557
性别 男
状态 离线
哇。这么多代码。要是写个病毒怎么办。一个功能就占了这么多了。

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

[ Last edited by hackhd on 2008-1-26 at 09:41 PM ]
14 发表于 2008-01-26 21:32 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
Newnn = Split(NewTime(0), " " , - 1) '不清楚用意

'将time Split就得到时分秒了啊……


你那样貌似下标会越界……
15 发表于 2008-01-26 21:34 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
Originally posted by hackhd at 2008-1-26 21:23:
哇。这么多代码。要是写个病毒怎么办。一个功能就占了这么多了。

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


不是由长短绝对代码的好坏的……

你的这个觉得好麽?

12:56:36你的结果如何呢?而且at这样用是没有效果的吧
论坛跳转: