powershell - 如何从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)