Powershell 比较两个具有相似内容的数组
由于Compare对象不能接受通配符,我如何比较两个数组中的内容,使它们在长度或内容上不完全相同,但相似程度足以让通配符集或正则表达式捕获它们 例如:Powershell 比较两个具有相似内容的数组,powershell,compare,switch-statement,Powershell,Compare,Switch Statement,由于Compare对象不能接受通配符,我如何比较两个数组中的内容,使它们在长度或内容上不完全相同,但相似程度足以让通配符集或正则表达式捕获它们 例如: $form = "First Name","Last Name","Address","Phone","Nickname","Fax Number" $data = "First Name ","Last Name","Street Address","Phone number","",Fax" 我可以在不使用一堆if语句和运算符的情况下比较
$form = "First Name","Last Name","Address","Phone","Nickname","Fax Number"
$data = "First Name ","Last Name","Street Address","Phone number","",Fax"
我可以在不使用一堆if语句和运算符的情况下比较数组吗?开关可能会更优雅,但我只是希望能够在一条线上实现这一点,与此类似:
Compare-Object ("*$form*) ("*$data*")
而不是像这样:
for($x=0;$x -lt $form.Count;$x++)
{
[string]$xx = $x
if($form[$x] -like "*$data[$x]*" -or $data[$x] -like "*form[$x]*" -and $data[$x] -ne $null -and $form[$x] -ne $null)
{
$form[$x]
$data[$x]
}
elseif($form[$x] -eq $null -and $data[$x] -eq $null)
{
"Form index $xx and Data index $xx are null"
}
elseif($form[$x] -eq $null)
{
"Form index $xx is null"
}
elseif($data[$x] -eq $null)
{
"Data index $xx is null"
}
else
{
"Data index $xx and Form index $xx are not even close to the same"
}
}
我怀疑您是否能够找到一些内置的东西,这些东西已经具备您在示例代码中概述的“智能”
您可以始终使自己的函数或cmdlet具有“一行”功能,允许您重复调用它。或者,您也可以自己编写。我怀疑您是否能够找到一些内置的东西,这些东西已经具备您在示例代码中概述的“智能”
您可以始终使自己的函数或cmdlet具有“一行”功能,允许您重复调用它。或者你也可以自己写。是的,我很害怕。我以前从未创建过自己的cmdlet,因此,也许这会让我值得尝试一下。谢谢。是的,我很害怕。我以前从未创建过自己的cmdlet,因此,也许这会让我值得尝试一下。谢谢