在Windows服务器上运行“cron”作业

时间:2011-05-27 16:51:27

标签: php iis cron scheduled-tasks

  

可能重复:
  What is the Windows version of cron?

大家好,

我在IIS服务器上有一个script.php,我希望每x分钟自动调用一次该脚本。问题是我需要像在浏览器(script.php?task = aaa)中那样将参数传递给脚本。计划任务似乎忽略了参数?task = aaa ...

如何运行此脚本传递一些“GET”参数?

谢谢, →

3 个答案:

答案 0 :(得分:6)

我在Windows 2003服务器上有两次这样的cron作业。我使用我可以工作的URL来编写iexplorer的一个schelude任务。

例如:

“C:\ ProgramFiles \ Internet Explorer \ iexplore.exe”http://mydomain.com/admin/index.php?action=central_alertas.php&act=1

答案 1 :(得分:4)

您可以通过调用参数将参数传递到文件中:

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

来源:http://php.net/manual/en/features.commandline.php

答案 2 :(得分:3)

我建议下载cURL for Windows,因为它可以为您的服务器发送页面请求。然后,您可以使用Windows Task Scheduler执行curl script.php?task=aaa