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 - Fatal编程技术网

powershell二维数组比较错误

powershell二维数组比较错误,powershell,Powershell,我试图比较两个数组,并希望删除重复的值。以下是我得到的代码: if(($run -ne $null) -and ($data -ne $null)) { $remains = Compare-Object -ReferenceObject $data -DifferenceObject $run -PassThru echo "$remains" } 变量包含以下数据,尽管$run包含数据,但仍会发出错误警报 $data-二维数组 [d13 , m0051] [

我试图比较两个数组,并希望删除重复的值。以下是我得到的代码:

if(($run -ne $null) -and ($data -ne $null)) {       
    $remains = Compare-Object -ReferenceObject $data -DifferenceObject $run -PassThru
    echo "$remains" 
}
变量包含以下数据,尽管
$run
包含数据,但仍会发出错误警报

$data
-二维数组

[d13 , m0051]
[d13 , m0052]
[d21 , m0083]
[d21 , m0084]
[d26 , m0103]
[d33 , m0131]
[d33 , m0132]
[d34 , m0136]
[d13 , m0052]
[d21 , m0084]
[d26 , m0103]
[d33 , m0132]
[d34 , m0136]
$run
-二维数组

[d13 , m0051]
[d13 , m0052]
[d21 , m0083]
[d21 , m0084]
[d26 , m0103]
[d33 , m0131]
[d33 , m0132]
[d34 , m0136]
[d13 , m0052]
[d21 , m0084]
[d26 , m0103]
[d33 , m0132]
[d34 , m0136]
错误:

Compare-Object : Cannot bind argument to parameter 'DifferenceObject' because it is null.
At e:\b.ps1:84 char:70
+             $remains = Compare-Object -ReferenceObject $data -DifferenceObject <<<<  $run -PassThru
    + CategoryInfo          : InvalidData: (:) [Compare-Object], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.CompareObje
   ctCommand
Compare对象:无法将参数绑定到参数“DifferenceObject”,因为它为null。
在e:\b.ps1:84字符:70

+$resistes=Compare Object-ReferenceObject$data-DifferenceObject您是如何创建$run和$data的

下面是我如何尝试的:

$run = @()
$run += ,@("d13", "m0051")
$run += ,@("d13", "m0052")
$run += ,@("d21", "m0083")
$run += ,@("d21", "m0084")
$run += ,@("d26", "m0103")
$run += ,@("d33", "m0131")
$run += ,@("d34", "m0136")

$data = @()
$data += ,@("d13", "m0052")
$data += ,@("d21", "m0084")
$data += ,@("d26", "m0103")
$data += ,@("d33", "m0132")
$data += ,@("d34", "m0136")
if(($run -ne $null) -and ($data -ne $null)) {       
    $remains = Compare-Object -ReferenceObject $data -DifferenceObject $run -PassThru
    write-output $remains
}
输出为4个元素

d13
m0051
d21
m0083
d33
m0131
d33
m0132

我正在从文件中读取数据。我无法在此附加文件。感谢快速响应RRY,但我发现错误在于初始化变量,因为我递归地使用了它。现在问题已经解决了。非常感谢你的努力。