我的程序出现问题,每6小时发生一次或两次。所以我想知道是否有任何方法可以让批处理脚本在后台持续运行,并且只在早上6点,中午6点,下午6点和午夜执行命令。
我的脚本只是一个
命令"C:\Program Files\WinSCP\WinSCP.com" /command "open %INPUT%" "get /etc/logs/*" "get /etc/network/interfaces" "bye"
我一直在打破我的脖子,似乎无法找到一种方法让程序进入睡眠状态,直到一天中的某个时间才消耗cpu。
答案 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
。这将允许您按照自己喜欢的任何计划运行任意脚本。