批处理脚本,直到某个时间才进入睡眠状态

时间:2012-01-04 20:53:12

标签: batch-file

我的程序出现问题,每6小时发生一次或两次。所以我想知道是否有任何方法可以让批处理脚本在后台持续运行,并且只在早上6点,中午6点,下午6点和午夜执行命令。

我的脚本只是一个

命令
"C:\Program Files\WinSCP\WinSCP.com" /command "open %INPUT%" "get /etc/logs/*" "get /etc/network/interfaces" "bye"

我一直在打破我的脖子,似乎无法找到一种方法让程序进入睡眠状态,直到一天中的某个时间才消耗cpu。

3 个答案:

答案 0 :(得分:2)

下面的批处理文件在6,12,18和0小时执行命令:

@echo off
:waitNextRun
for /F "delims=:" %%h in ("%time%") do set hour=%%h
set /A mod6=hour %% 6
if not %mod6% == 0 goto waitNextRun

"C:\Program Files\WinSCP\WinSCP.com" /command "open %INPUT%" "get /etc/logs/*" "get /etc/network/interfaces" "bye"

:waitNextHour
for /F "delims=:" %%h in ("%time%") do if %hour% == %%h goto waitNextHour
goto waitNextRun

但是,此批处理文件不会“在后台”运行,而是作为普通的批处理文件运行。您可以通过以下命令启动它来最小化其CPU使用:

START "Run WinSCP every six hours" /MIN /LOW theBatchFile

答案 1 :(得分:1)

正确的方法可能是设置cron任务,或者如果您使用的是Windows但无法访问cron,例如通过CygWin,然后使用task scheduler

答案 2 :(得分:0)

使用操作系统内置的计划。在Linux下,在Windows下cron,搜索Scheduler。这将允许您按照自己喜欢的任何计划运行任意脚本。