我似乎想不出什么东西来,我希望有人能帮上忙
我有一个名为$SnapVMsAll的对象数组,如下所示:
VMName Name SnapshotType CreationTime ParentSnapshotName
------ ---- ---------- ------------ ------------------
SHARED-server.host.com SHARED-server.host.com - (02/10/2017 - 13:02:44) Standard 02/10/2017 13:05:58 我需要在这个包含字符串"Veeam“的对象数组中显示所有记录,但是我认为我在隔离要比较的对象的一个特定属性时遇到了问题。
我的尝试如下:
echo $SnapVMsAll | Where-Object (Foreach-Object -MemberName name) -Like "Veeam Replica"这将返回错误:
Where-Object : Cannot validate argument on parameter 'Property'. The argument is null or empty. Provide an argument that is not null or empty, and then try the command again.我也试过
echo $SnapVMsAll | Where-Object $SnapVMsAll.name -Like "Veeam Replica"但我还是犯了同样的错误。
发布于 2018-08-07 08:09:17
$SnapVMsAll不存在于管道中,它是传递给管道的对象。在管道中,可以使用自动变量$_访问对象。
还请注意,-Like通常与通配符一起使用来匹配字符串。如果名称为Veeam Replica,则应使用-eq,如果名称包含Veeam Replica,则应改为-Like "*Veeam Replica*"
因此,将代码更改为以下代码应该有效:
$SnapVMsAll | Where-Object { $_.name -Like "*Veeam Replica*" }https://stackoverflow.com/questions/51721637
复制相似问题