Board logo

标题: [其他] 批处理怎样让命令定时运行?【已解决】 [打印本页]

作者: 纯植物    时间: 2014-6-5 23:23     标题: 批处理怎样让命令定时运行?【已解决】

本帖最后由 纯植物 于 2015-7-24 18:08 编辑

我想让一条命令在我设定的时间后再运行,怎么写代码?
作者: 522235677    时间: 2014-6-6 08:23

AT 命令已弃用。请改用 schtasks.exe。

AT 命令安排在特定日期和时间运行命令和程序。
要使用 AT 命令,计划服务必须已在运行中。

AT [\\computername] [ [id] [/DELETE] | /DELETE [/YES]]
AT [\\computername] time [/INTERACTIVE]
    [ /EVERY:date[,...] | /NEXT:date[,...]] "command"

\\computername       指定远程计算机。如果省略这个参数,
                     会计划在本地计算机上运行命令。
id                   指定给已计划命令的识别号。
/delete              删除某个已计划的命令。如果省略 id,
                     计算机上所有已计划的命令都会被删除。
/yes                 不需要进一步确认时,跟删除所有作业
                     的命令一起使用。
time                 指定运行命令的时间。
/interactive         允许作业在运行时,与当时登录的用户
                     桌面进行交互。
/every:date[,...]    指定在每周或每月的特定日期运行命令。
                     如果省略日期,则默认为在每月的
                     本日运行。
/next:date[,...]     指定在下一个指定日期(如,下周四)运
                     行命令。如果省略日期,则默认为在每
                     月的本日运行。
"command"            准备运行的 Windows NT 命令或批处理
                     程序。
作者: 纯植物    时间: 2014-6-7 22:42

回复 2# 522235677
我想在运行完一条命令之后过2分钟再运行下一条命令,也可以用at吗?不懂怎么写?
作者: 522235677    时间: 2014-6-8 00:22

回复 3# 纯植物


    那不行,可以用ping 127.1 -n 120 >nul 来大概延迟2分钟。

windows7及以上的系统可以用timeout /t 120 或者choice
作者: DAIC    时间: 2014-6-8 08:52

回复 4# 522235677


    为什么不行呢?获取当前时间,加上2分钟,调用schtasks创建任务计划。
作者: 522235677    时间: 2014-6-8 09:57

回复 5# DAIC


    运行完一条命令之后过2分钟再运行下一条命令。何必这么麻烦
作者: DAIC    时间: 2014-6-8 13:08

回复 6# 522235677


    是否麻烦是一回事,行不行是另外一回事
作者: paladin437    时间: 2014-6-10 16:03

@echo off

set time_start=%time%

if "" == "%1" (
goto error
)

:t_r

set /a time_=%1*100-((1%time:~0,2%-1%time_start:~0,2%)*360000+(1%time:~3,2%-1%time_start:~3,2%)*6000+(1%time:~6,2%-1%time_start:~6,2%)*100+(1%time:~9,2%-1%time_start:~9,2%))
cls & echo %time_%ms

if %time_% gtr 0 (
goto :t_r
) else (
goto :EOF
)

:error
echo "input time"
你看看这个你能用吗?非常浪费CPU




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