【问题标题】:Kill iexplore.exe processes through .bat file通过.bat文件杀死iexplore.exe进程
【发布时间】: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


【解决方案1】:

不要使用 IE,而是使用可以访问网页的命令行实用程序。 这是我过去使用过的可靠工具:http://noeld.com/programs.asp?cat=misc#download

你的命令可能只是:

Download http://.../script.php /notime /output:result.txt

这将向服务器发送指定页面的请求,并将结果下载到本地result.txt文件。

让 Windows 任务计划程序控制间隔和执行时间。

【讨论】:

  • 这会将文件的副本下载到机器上吗?我正在为我们的站点在服务器上运行调度程序,我不想通过用相同事物的多个副本填充它而导致性能问题。
  • @user3521737 - 它下载调用的结果(用户将在浏览器中看到的页面的“查看源”)。在我上面的示例中,result.txt 将不断被覆盖,因此它不会创建超过 1 个文件。
  • 最后一点澄清。我会将该命令放入我的 .bat 文件中吗?我知道它代替了浏览器的打开和关闭,但是您提到上面的语句是通过命令行使用的。
  • @user3521737 - 您可以将其用作单个命令或作为批处理文件的一部分。
猜你喜欢
  • 2014-11-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-21
  • 1970-01-01
  • 2021-11-29
  • 2020-03-02
相关资源
最近更新 更多