【问题标题】:Tracking PID in batch file and closing cmd when PID closes跟踪批处理文件中的PID并在PID关闭时关闭cmd
【发布时间】:2014-03-24 15:50:46
【问题描述】:

我有一个批处理文件,它可以在默认浏览器中从命令行启动一个 HTML 文件:

start filename.html

我正在寻找某种方法来找出生成的进程(firefox,即 chrome)的 ID 并跟踪 PID,以便在进程完成时关闭 cmd 窗口。

基本上,理想情况下,进程应该是这样的:启动 html,找到最后生成的进程的 PID,观察 PID,当 PID 关闭时 - CMD 将退出

我已尝试四处搜索,并找到了一种方法来查找进程的 pid,但在退出之前不知道如何跟踪。

是否可以在 BAT 文件中执行此操作?任何帮助都会很可爱。谢谢!

【问题讨论】:

  • 问题是您不能确保默认的网络浏览器会在新进程中打开 html 文件,而不是重用现有进程之一并在其中添加新选项卡或新窗口。这通常涉及启动一个新进程(您的进程),它与现有进程对话并发送管理请求所需的数据,并且新启动的进程(您的进程)结束,因为 html 文件的所有加载都是留给旧流程。新实例已死,但文件仍在旧实例中打开。
  • start /WAIT filename.html ?
  • @AlexK.,在我第一次打开浏览器窗口然后运行命令之前,我认为(并评论)相同。

标签: windows batch-file process cmd


【解决方案1】:
start filename.html
exit

试试这个。但我知道的是,一旦进程完成,cmd 会自行关闭。

或 你可以直接运行你的文件而不打开cmd黑色窗口试试下面的脚本将它保存为example.vbs并用你的批处理文件名替换测试然后运行这个example.vbs文件而不是批处理文件。

Set oShell = CreateObject ("Wscript.Shell") 
Dim strArgs
strArgs = "cmd /c testing.bat"
oShell.Run strArgs, 0, false

【讨论】:

    猜你喜欢
    • 2021-04-15
    • 1970-01-01
    • 1970-01-01
    • 2012-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多