Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 比较两个具有相似内容的数组_Powershell_Compare_Switch Statement - Fatal编程技术网

Powershell 比较两个具有相似内容的数组

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语句和运算符的情况下比较

由于Compare对象不能接受通配符,我如何比较两个数组中的内容,使它们在长度或内容上不完全相同,但相似程度足以让通配符集或正则表达式捕获它们

例如:

$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,因此,也许这会让我值得尝试一下。谢谢