我尝试从存储“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