Powershell 在变量(不是文本文件)内搜索字符串

Powershell 在变量(不是文本文件)内搜索字符串

我尝试从存储“systeminfo”命令输出的变量“$a”中搜索名为“Hostname”的字符串,但遇到了问题。我正在使用“system-info”来收集更大的数据集。

代码:

$a= (get-systeminfo -computername localhost | select-object hostname, OSNAME, osversion, model, type)  
write-output $a 
select-string $a -pattern "hostname"

错误:

Select-String : Cannot find path 'C:\Users\john001c\@{Hostname=PACCPL-FTN1TM1; OSName=Microsoft Windows 7 Enterprise ; OSVersion=6.1.7601 Service Pack 1 Build 7601; Model=Latitude E
4310; Type=x64-based PC}' because it does not exist.

At line:5 char:14
+ select-string <<<<  $a -pattern "hostname"
    + CategoryInfo          : ObjectNotFound: (C:\Users\john...e=x64-based PC}:String) [Select-String], ItemNotFoundException
    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.SelectStringCommand

在变量内搜索字符串的正确方法是什么?

答案1

选择字符串有多个参数集。若要在对象(而不是文件)内进行搜索,您的参数应如下所示。请注意,使用参数-InputObject是针对非文件的内容的,并且不能将其用作位置参数,-InputObject必须明确命名该参数。

参数集:对象选择字符串 [-模式] -InputObject

因此,请尝试一下这个。

select-string -pattern "hostname" -InputObject $a

相关内容