【发布时间】:2016-03-16 11:23:26
【问题描述】:
我目前有一个通过 Windows 任务计划程序运行的 .bat 文件,其中包含以下内容:
start http://.../script.php
SLEEP 60
taskkill /im /f "C:\Program Files (x86)\Internet Explorer\iexplore.exe"
我打算运行脚本,等待一分钟,因为它需要一些时间才能完成,然后终止所有在后台运行的 Internet Explorer 进程以避免浪费资源。我已经尝试设置一个只使用 php.exe 运行脚本的任务,但是那个任务不起作用。 .php 脚本所做的唯一事情就是更新数据库表。我每次运行这个东西时都检查过任务管理器,并且 iexplore.exe 进程仍然存在。在等待发布此内容时,我尝试按如下方式修改 .bat 文件:
start http://.../script.php
SLEEP 60
taskkill.exe /im /f iexplore.exe /t
虽然这似乎有一些影响,因为没有 iexplore.exe 进程正在运行,但脚本也无法运行。我尝试在第三行末尾删除 /t ,但没有产生任何结果。
系统每次第一次运行后都会添加iexplore.exe*32进程,不知道如何正确杀死。我需要这整个事情自动运行,而不需要用户关闭窗口或确认任何事情。我做错了什么?
【问题讨论】:
-
听起来执行 cron 脚本的用户没有杀死进程所需的权限。
-
这没有意义。我再次修改了文件,在打开页面之前放置了 taskkill 命令。这样,它会杀死任何先前的进程,然后启动一个新进程,然后在 30 分钟后重复此过程。我不明白发生了什么。
-
如果您希望坐在椅子和键盘之间的人查看页面或与页面交互,则启动 Internet Explorer 可能会很有用。不过,在这种情况下,我看不出这只是浪费资源。如果我是你,我只会编写一个 XMLHTTPRequest 脚本。看看你是否可以modify this script 来满足你的邪恶计划。这将比启动 IE 占用更少的资源,更适合作为无头计划任务运行,并在完成后退出。不需要
taskkill任何东西。 -
注意:iexplore.exe *32,只是为了显示目的(让用户知道进程是32bit的),进程映像文件名仍然是iexplore.exe.
标签: php batch-file scheduled-tasks