首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Powershell:检测特定打开的程序正在运行(并关闭它)

Powershell:检测特定打开的程序正在运行(并关闭它)
EN

Stack Overflow用户
提问于 2022-10-18 18:46:03
回答 1查看 41关注 0票数 0

我在尝试自动化一个工作流。自动化脚本主要用Powershell编写,由以下步骤组成: 1)打开程序;2)与API通信;3)关闭程序。此脚本将每天运行多次,不需要每次脚本完成时关闭程序,而是在脚本开始时检查程序是否已经打开,如果没有,则打开它。我想实现这两种方法,然后决定以后使用哪种解决方案。

打开程序的代码已经完成,但是仅仅运行一个.exe文件来打开程序是不够的,因为我必须加载正确的设置和图形用户界面,在从命令行打开.exe文件的同时,我还必须使用-s,也可以使用-c。我在runProgram.cmd中完成了所有这一切,所以在Powershell脚本中,我只运行这个文件来打开程序。但是,我不确定如何检测已经打开的程序(它已经打开了),以及如何关闭它。我相信,在Get进程的帮助下,解决方案可能会使用进程,但我不确定它的能力和局限性(如何检查我的程序的进程是否不在正在运行的进程列表中?),以及是否有更好的方法来处理这个问题。

EN

回答 1

Stack Overflow用户

发布于 2022-10-19 18:45:47

我找到了解决办法:

  1. 打开程序并打开Powershell,并键入Get-Process (这将列出所有当前正在运行的进程)

  1. 搜索您的(按姓名)。如果您不知道要查找的是哪个进程,则可以关闭程序,然后再次键入Get-Process,并查找从列表中消失的进程,因为您关闭了它。让我们假设它的名称是"yourprocess".

  1. 在代码中键入$val = Get-Process -Name yourprocess。如果它正在运行,$val应该等于有关进程的一些数据,如果它没有运行,那么$val是0。因此,如果要检查它是否已打开,则应使用:

if($null -ne $val){...}

最后,停止进程:Stop-Process -Name yourprocess

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74116037

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档