在我的笔记本电脑上,我已经安装了一个networking服务器,并写了一个脚本。 在任何浏览器中通过http://localhost/test/search.php
访问脚本使其正常运行:它search,下载并存储某些推文。
我现在想让脚本每20分钟自动运行一次,所以我在C:\Program Files\GnuWin32\bin\wget.exe
下载并安装了wget
for Windows。 然后,我使用以下操作创build了一个Windows任务(填写在“操作”选项卡上):
Program/script: "C:\Program Files\GnuWin32\bin\wget.exe" Add arguments (optional): -O - -q -t 1 http://localhost/test/search.php
正如所料,每20分钟打开一个命令行来运行该脚本。 但是,没有任何反应。 脚本没有被初始化。 我相信我所有的道路都是正确的。 什么可能导致脚本不执行? 命令行在几毫秒内消失,所以我看不到它说什么…
你提到两个路径search.php
:一个是/test
,另一个是/ting
。 确保你在浏览器和wget中使用相同的。
如果你请求一个不存在的页面,如果你提供了-q
,你将不会得到任何错误。 将其替换为-v
或--verbose
以查看错误。
c:\gnuwin32\bin\wget.exe -O - --verbose -t 1 http://localhost/test/search.php --2013-02-25 23:42:03-- http://localhost/test/search.php Resolving localhost... ::1, 127.0.0.1 Connecting to localhost|::1|:80... connected. HTTP request sent, awaiting response... 404 Not Found 2013-02-25 23:42:03 ERROR 404: Not Found.
当你得到命令行工作时,你可以专注于使用任务调度程序来运行它。
您可以像您自己或任何其他帐户一样运行该任务。 即使您已经注销,使用LOCAL SERVICE
也可以在不提供密码的情况下运行它。 请确保您选择的帐户具有wget所在目录的权限。
其他人已经提到 ,你必须设置你的计划任务的路径,否则你会得到你在屏幕截图中显示的操作代码(2)。 它也将确保WIndows找到wget.exe
依赖项,即libeay32.dll
和libssl32.dll
。
。
最后,简化。 从命令行运行PHP。 上面的链接是一个简单脚本的例子 。
写你的代码,以便您可以从命令行独立调用search.php。 无需将HTTP客户端和Web服务器置于其间。 这里有一些针对各种Twitter相关操作的示例脚本 。
请创建一个bat文件,在那里提及所有的命令,比如Broncha在注释中提到的命令,然后将它添加到Windows任务调度器中。
task1.bat ----------- cd c:\xampp\htdocs\test php search.php
你应该从命令行测试你的脚本来知道它是否工作。 只需在cmd
上运行这个检查
"C:\Program Files\GnuWin32\bin\wget.exe" -O - -q -t 1 http://localhost/test/search.php
任务计划程序有许多设置选项卡,检查历史记录选项卡查看计划的任务历史记录,您可以在其中检查最后几个运行时的退出代码。 在历史中寻找这样的事件:
事件ID:201任务类别:操作已完成
action "C:\Program Files (x86)\GnuWin32\bin\wget.exe" with return code x
检查其退出代码action "C:\Program Files (x86)\GnuWin32\bin\wget.exe" with return code x
。 如果它是零,那么它正在工作,任何其他整数意味着错误。
请告诉你使用哪个窗口? 也发布上面提到的命令的输出,以便我可以确切地知道什么是任务计划程序中的错误。