Запуск задания "cron" на сервере Windows [дубликат]
Возможный Дубликат:
Какова версия cron для Windows?
Всем привет,
У меня есть script.php на сервере IIS, и я хочу автоматически вызывать этот скрипт каждые x минут. Проблема в том, что мне нужно передать аргументы скрипту, как я бы сделал в браузере (script.php?task=aaa). похоже, что запланированная задача игнорирует аргумент ?task=aaa...
Как я могу запустить этот скрипт, передав его некоторым "ПОЛУЧИТЬ" аргументы?
Спасибо, Л
3 answers
Вы можете передать параметры в файл, вызвав его следующим образом:
C:\PHP5\php.exe -f "C:\PHP Scripts\script.php" -- -arg1 -arg2 -arg3
И затем вы можете проанализировать argv с помощью этой функции:
function arguments($args ) {
$ret = array(
'exec' => '',
'options' => array(),
'flags' => array(),
'arguments' => array(),
);
$ret['exec'] = array_shift( $args );
while (($arg = array_shift($args)) != NULL) {
// Is it a option? (prefixed with --)
if ( substr($arg, 0, 2) === '--' ) {
$option = substr($arg, 2);
// is it the syntax '--option=argument'?
if (strpos($option,'=') !== FALSE)
array_push( $ret['options'], explode('=', $option, 2) );
else
array_push( $ret['options'], $option );
continue;
}
// Is it a flag or a serial of flags? (prefixed with -)
if ( substr( $arg, 0, 1 ) === '-' ) {
for ($i = 1; isset($arg[$i]) ; $i++)
$ret['flags'][] = $arg[$i];
continue;
}
// finally, it is not option, nor flag
$ret['arguments'][] = $arg;
continue;
}
return $ret;
}//function arguments
У меня есть два таких задания cron на моем сервере Windows 2003. Я программирую задачу schelude iexplorer с URL-адресом, с которым я могу работать.
Например:
"C:\ProgramFiles\Internet Explorer\iexplore.exe "http://mydomain.com/admin/index.php?action=central_alertas.php&act=1
Я бы предложил загрузить CURL для Windows, так как он может сделать запрос страницы на ваш сервер для вас. Затем вы можете использовать Планировщик задач Windows для выполнения curl script.php?task=aaa
.