powershell - 识别Powershell中执行批处理文件的PID

标签 powershell batch-file pid powershell-1.0

我需要从PowerShell(v1.0)脚本中识别正在执行的批处理文件的Process ID。有人可以建议这样做的方法吗?
谢谢,MagicAndi。

最佳答案

好吧,是否可行取决于您如何执行批处理文件。

通常,您可能会发现的唯一方法是查看用于启动批处理的命令行。如果您在Windows资源管理器中双击一个批处理文件,您将得到如下命令行

cmd /c ""C:\Users\Me\test.cmd" "

然后,在Powershell中,您可以在Get-WMIObject上使用Win32_Process,其中包括命令行:
PS Home:\> gwmi Win32_Process | ? { $_.commandline -match "test\.cmd" } | ft commandline,processid -auto

commandline                             processid
-----------                             ---------
cmd /c ""C:\Users\Me\test.cmd" "             1028

但是,如果直接从命令提示符启动批处理,则无法从外部发现正在运行的批处理以及是谁启动的。

关于powershell - 识别Powershell中执行批处理文件的PID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1342292/

相关文章:

python - Anaconda 提示 "Failed to create temp directory ' C :\temp\conda-<RANDOM>\' " error

powershell - 使用Authenticationn/Access token 访问TeamCity时出现错误401未经授权

powershell - 如何在 PowerShell 中向 .NET 对象添加事件处理程序?

c - 以编程方式确定程序是否正在运行

windows - 无法从 Powershell 中的 Windows 搜索生成电子邮件

batch-file - 批处理文件 - 如何将 FindStr 与百分比一起使用

windows - Windows批量上传目录和文件到FTP

java - 无法从 Java Web 服务获取数据

c++ - getppid() 不返回 parent 的 pid

c# - 从 pid 获取窗口标题