删除数组中另一个数组中的项目

Har*_*ari 4 powershell

我被我的剧本困住了.我需要比较两个数组,一个是查询的结果,另一个是文件的内容:

$Array1 = Invoke-Sqlcmd -Query "select name from person"

$Array2 = Get-Content ".\Myfile.txt" #the file is a set of one item
every line
Run Code Online (Sandbox Code Playgroud)

现在,在$ Array2中,有些项目我想从$ Array1中删除.

我怎样才能做到这一点?谢谢你的帮助!

Mat*_*sen 14

使用Where-Objectcmdlet$Array1根据以下内容进行筛选$Array2:

$Array1 = $Array1 |Where-Object { $Array2 -notcontains $_ }
Run Code Online (Sandbox Code Playgroud)

如果Invoke-Sqlcmd返回简单字符串,则有效.如果没有,你可以这样做:

$Array1 = $Array1 |Where-Object { $Array2 -notcontains $_.someProperty }
Run Code Online (Sandbox Code Playgroud)