找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 28243|回复: 8

[日期时间] 请帮忙写个关于更改电脑日期的批处理命令

[复制链接]
发表于 2013-8-7 10:55:09 | 显示全部楼层 |阅读模式
本帖最后由 yhzh1117 于 2013-8-7 14:25 编辑

我有一个服务器系统,客户端时间要和此系统时间同步,此电脑时间不能出现星期六和星期日。

1,我想的是每到星期六时,用命令加计划任务把电脑日期提前1天,如8月10日星期六修改成8月9日星期五。(我想的是把电脑时间后退24H)
2,到星期日时,用命令加计划任务把电脑日期提前1天,如8月11日星期日修改成8月9日星期五。(因为第1条已经后退了24H,现在再后退24H)
3,到星期一时,用命令加计划回到正常的时间(由于做了时间服务器,不能与INTERNET同步)。(再提前24H)

麻烦大伙帮个忙,谢谢了!
发表于 2013-8-7 14:40:45 | 显示全部楼层
什么操作系统?2003还是2008?
 楼主| 发表于 2013-8-7 14:45:27 | 显示全部楼层
回复 2# gawk


    2003server
 楼主| 发表于 2013-8-8 06:47:37 | 显示全部楼层
怎么没有人帮忙啊?
发表于 2013-8-8 17:45:01 | 显示全部楼层
本帖最后由 tz_being 于 2013-8-8 17:46 编辑

不可能直接改星期的,改了月、日然后星期自己变,在日、星期满足你的要求的情况下,就不可能是只提前24H了,相差几个月都可能;或者在月、日、星期都满足你的要求的情况下,相差几年、十几年。
发表于 2013-8-8 21:26:32 | 显示全部楼层
本帖最后由 weichenxiehou 于 2013-8-8 21:38 编辑

回复 5# tz_being
保存为.vbs:

  1. option explicit
  2. dim fso,datefile,objText,nRead,objShell
  3. const ForWriting=2,ForReading=1
  4. set fso=CreateObject("scripting.FileSystemObject")
  5. set objShell=CreateObject("WScript.Shell")
  6. datefile=fso.GetParentFolderName( _
  7.         WScript.ScriptFullName) & "\date.dat"
  8. if not fso.FileExists(datefile) then
  9.         MsgBox "注意:当前目录下未发现date.dat,视为脚本首次运行。" &_
  10.                 vbNewLine & vbNewLine & "date.dat记录着星期五重复的次数," &_
  11.                 "必要时可手动更改,现在会将当前系统日期记为真实日期。" _
  12.                 ,vbInformation,"提醒"
  13.         set objText=fso.OpenTextFile(datefile,ForWriting,true)
  14.         objText.WriteLine(0)
  15.         objText.Close
  16. end if
  17. set objText=fso.OpenTextFile(datefile,ForReading,false)
  18. nRead=objText.ReadLine
  19. objText.Close
  20. set objText=fso.OpenTextFile(datefile,ForWriting,true)
  21. if Weekday(Date,vbMonday)>5 then
  22.         if nRead=3 then
  23.                 objShell.Run "cmd /c date " & DateAdd("d",2,Date),0,true
  24.                 objText.WriteLine(0)
  25.         else
  26.                 objShell.Run "cmd /c date " & DateAdd("d",5-Weekday(Date,vbMonday),Date),0,true
  27.                 objText.WriteLine(nRead+Weekday(Date,vbMonday)-5)
  28.         end if
  29. else
  30.         objText.WriteLine(0)
  31. end if
  32. objText.Close
复制代码
发表于 2013-8-9 13:53:59 | 显示全部楼层
假如每逢周六就将时间修改为周五,那么如果天天运行,不是永远不可能到周天吗?
 楼主| 发表于 2013-8-9 15:42:46 | 显示全部楼层
回复 7# CrLf


    我也在想这个问题,但是是有办法实现这个功能的,我现在试一下上面的命令。
 楼主| 发表于 2013-8-9 15:43:07 | 显示全部楼层
回复 6# weichenxiehou


    谢谢!我测试一下看。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-20 13:23 , Processed in 0.010957 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表