2017-06-09 3 views
3

を何をやっている私は、私がここで間違ってやっているのかわからないです:PowerShellの:配列1中のアイテムは、配列2の項目が含まれている場合、私はここで間違っ

$ZertoGenericAlert = "VRA0030" 
    $ZvmToVraConnection = "ZVM0002" 
    $ZvmToZvmConnection = "ZVM0003", "ZVM0004" 

    $thoseerrors = "ZVM0002", "VPG0006", "VPG0004" , "ZVM0003", "ZVM0004" 

    if ($thoseerrors -contains $ZvmToZvmConnection) {Echo "bingo"} Else {Echo "fail"} 

それは私がそのことを実行すると、「失敗」として来続けますONLY 1項目は私が削除「ZVM0004」とだけ「ZVM003は、」私は

012「ビンゴ」を得るまま $zvmtozvmconnection

すなわち中に発見された場合、コードの全体部分は

それは私に「ビンゴ」を与えます

私はまた-matchをテストし、それはどちらか動作しませんでした

+0

可能な重複(https://stackoverflow.com/questions/28822027/identify-if-any-string-in-one -array-second-in-second-of-strings-of-with-power) – TessellatingHeckler

+0

'$ array = 4,5,6; 1,2、$ array、3,4 - $ array' - > '$ true'を含みます。右側のオブジェクトが左側の配列にあるかどうかをテストします。ある配列*に他の配列*が含まれている場合(メモリ参照ではなく、コンテンツ値を一致させることによって)。 – TessellatingHeckler

答えて

3

-containsがそのように動作しません助けてください。 1つの項目が配列に含まれているかどうかをチェックします。 -inは同じで、他の順序($array -contains $itemまたは$item -in $array)です。

あなたはこのためにCompare-Objectコマンドレットを使用する必要があります。

if ((Compare-Object -ReferenceObject $thoseerrors -DifferenceObject $ZvmToZvmConnection -ExcludeDifferent -IncludeEqual)) { 
    'bingo' 
} else { 
    'fail' 
} 
+0

ありがとう...私は彼らがメモを修正して、配列2に含まれるアイテムのうち少なくとも1つがアレイ2に含まれているかどうかを調べるPowershell ISEの助けを借りているはずだと思っています...ありがとう – AdilZ

+1

@ A.Zia興味深い、あなたはそれをどこで見た? – briantist

+0

http://i.imgur.com/wnd47fq.png ここに – AdilZ

2

他の方法1つのライナーとして

$resul=$ZvmToZvmConnection | where {$_ -in $thoseerrors} | select -First 1 

if ($resul) 
{ 
    'bingo' 
} 
else 
{ 
    'fail' 
} 
0

if($thoseerrors | ? {$ZvmToZvmConnection -contains $_}) {Echo "bingo"} Else {Echo "fail"} 

し、分離し、アレイ内のすべてのエラーを持ちます。 【つのアレイ内の任意の文字列は、PowerShellを使用し、文字列の二番目の配列に存在するかどうかを識別]の

# Existing errors stored in $errors 
$errors = $thoseerrors | Where {$ZvmToZvmConnection -contains $_} 

# Check if the $errors array contains elements 
if($errors){Echo "bingo"} Else {Echo "fail"} 
関連する問題