пакетный скрипт, усыпить до определенного времени - PullRequest
3 голосов
/ 05 января 2012

У меня проблема с моей программой, которая возникает один или два раза каждые 6 часов.Поэтому мне было интересно, можно ли каким-то образом заставить пакетный скрипт постоянно запускаться в фоновом режиме и выполнять только команду, которая ему дается в 6 часов утра, в полдень, в 6 часов дня и в полночь.

Мой скрипт - это всего лишь одна команда, которая

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

Я сломал себе шею и, похоже, не могу найти способ перевести программу в спящий режим и не использовать процессор доопределенное время суток.

Ответы [ 3 ]

2 голосов
/ 05 января 2012

Пакетный файл ниже выполняет команду в 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

Однако этот пакетный файл запускается не "в фоновом режиме", а как обычный пакетный файл.Вы можете минимизировать использование процессора, запустив его с помощью этой команды:

START "Run WinSCP every six hours" /MIN /LOW theBatchFile
1 голос
/ 05 января 2012

Правильный способ сделать это, вероятно, установить задачу cron или, если вы используете Windows и не имеете доступа к cron, например, через CygWin, то использовать задачу планировщик .

0 голосов
/ 05 января 2012

Используйте планирование, встроенное в операционную систему.Под Linux это cron под Windows, поиск Scheduler.Это позволит вам запускать произвольные сценарии в любое удобное для вас расписание.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...