我在尝试自动化一个工作流。自动化脚本主要用Powershell编写,由以下步骤组成: 1)打开程序;2)与API通信;3)关闭程序。此脚本将每天运行多次,不需要每次脚本完成时关闭程序,而是在脚本开始时检查程序是否已经打开,如果没有,则打开它。我想实现这两种方法,然后决定以后使用哪种解决方案。
打开程序的代码已经完成,但是仅仅运行一个.exe文件来打开程序是不够的,因为我必须加载正确的设置和图形用户界面,在从命令行打开.exe文件的同时,我还必须使用-s,也可以使用-c。我在runProgram.cmd中完成了所有这一切,所以在Powershell脚本中,我只运行这个文件来打开程序。但是,我不确定如何检测已经打开的程序(它已经打开了),以及如何关闭它。我相信,在Get进程的帮助下,解决方案可能会使用进程,但我不确定它的能力和局限性(如何检查我的程序的进程是否不在正在运行的进程列表中?),以及是否有更好的方法来处理这个问题。
发布于 2022-10-19 18:45:47
我找到了解决办法:
Get-Process
(这将列出所有当前正在运行的进程)Get-Process
,并查找从列表中消失的进程,因为您关闭了它。让我们假设它的名称是"yourprocess".$val = Get-Process -Name yourprocess
。如果它正在运行,$val
应该等于有关进程的一些数据,如果它没有运行,那么$val
是0。因此,如果要检查它是否已打开,则应使用:if($null -ne $val){...}
最后,停止进程:Stop-Process -Name yourprocess
。
https://stackoverflow.com/questions/74116037
复制相似问题