首页 > 解决方案 > 如何从get-process获取指定值

问题描述

下面的代码生成一个 csv 文件,该文件本身包含有关当前窗口的信息列表,例如窗口名称、运行时、标题等。如何从这些项目中的一个或多个创建变量(而不从输出文件中读取它们)?

Add-Type @"
  using System;
  using System.Runtime.InteropServices;
  public class Tricks {
    [DllImport("user32.dll")]
    public static extern IntPtr GetForegroundWindow();
}
"@

destination=".\Documents"
csv_name="\activeProcess.csv"
$a = [tricks]::GetForegroundWindow()

get-process | ? { $_.mainwindowhandle -eq $a } | Export-Csv -NoTypeInformation -Path $destination$csv_name

编辑:get-process | ? { $_.mainwindowhandle -eq $a }产生文本:

"Handles  NPM(K)    PM(K)      WS(K)     CPU(s)     Id  SI ProcessName
-------  ------    -----      -----     ------     --  -- -----------
    733      43    65832      82612       5.64   7404   1 powershell"

而我想指定“ProcessName”,所以可以创建一个包含字符串“powershell”的变量

解决方案:将最后一个 ling 括在括号中并附加“.ProcessName”可以解决此问题。例如:

(get-process | ? { $_.mainwindowhandle -eq $a }).ProcessName)

标签: powershell

解决方案


推荐阅读