Board logo

标题: [网络连接] [已解决]批处理怎样实现at任务延时运行? [打印本页]

作者: sky02    时间: 2011-9-29 17:08     标题: [已解决]批处理怎样实现at任务延时运行?

本帖最后由 sky02 于 2011-9-30 12:22 编辑

局域网内的其它机子,有很多,时间都是不同步的,因为要更新文件,所以是想设置以添加at任务后延时一分钟运行
  1. for /l %%i in (2 1 254) do (at \\192.168.1.%%i %time% start c:\update.exe)
复制代码
能否将这个%time%加上一分钟后运行?
作者: wc726842270    时间: 2011-9-29 23:16

提供两种思路,如果不对请指出,谢谢了
1,用SCHTASK来完成
2。累加法
我的理解是你在任务计划中,每一分种更新一次,最近很懒,见谅
作者: Batcher    时间: 2011-9-29 23:23

回复 2# wc726842270


1、schtasks命令能计算1分钟之后的时间?
2、你理解错了,不是1分钟1次。
作者: wc726842270    时间: 2011-9-29 23:35

回复 3# Batcher


    不好意思少打个S
我的意思是用"/mo"达到目的,因为前面以经定义了MINUTE,那么就可以用"/MO"渐渐变大来实现
当然这是建立在理解对的情况下(PS:这个实验做不起,安个虚拟机就要2个小时,唉)
作者: cjiabing    时间: 2011-9-30 00:23

同步时间就不熟悉了,延时呢简单,用ping就可以了。
可能你是说在对方电脑里延时,设置一个msg或bat指定时间就可以了。
其实换个思路,在对方电脑里延时比较麻烦,不如你在自己电脑里设置好时间再执行咯。
作者: sky02    时间: 2011-9-30 10:21

回复 5# cjiabing
比如现在本机是10:30,但是对方的电脑有可能是11:00,也有可能是10:00,如果按照我的电脑时间去执行,那肯定有一台机要在明天才能运行那个任务,而另一台则需要半小时之后才执行
作者: ArdentMan    时间: 2011-9-30 10:40

本帖最后由 ArdentMan 于 2011-9-30 11:15 编辑

先用Net Time取得对方机器的时间再使用At命令
  1. @Echo Off&SetLocal EnableDelayedExpansion
  2. For /L %%i In (2,1,254) Do (
  3.   For /F "tokens=4-6 delims=: " %%a In ('Net Time \\192.168.1.%%i') Do (
  4.     Set /A m=1%%c%%100+2,h=%%b
  5.     If !m! GEQ 60 Set /A m-=60,h+=1
  6.     If "%%a" EQU "下午" (
  7.       Set /A h+=12
  8.       If !h! GEQ 24 Set /A h-=24
  9.     )
  10.     If !m! LSS 10 Set "m=0!m!"
  11.     If !h! LSS 10 Set "h= !h!"
  12.     At \\192.168.1.%%i !h!:!m!:00.00 Start c:\update.exe
  13.   )
  14. )
复制代码

作者: Batcher    时间: 2011-9-30 12:10

回复 6# sky02


设置一台机器作为时间服务器,让其他机器都来用它同步时间。




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2