1

2つの変数の値を比較しようとしていますが、これら2つの文字列の内容は順序が異なります。

例:

$Var1 = "item1"
$Var1 += "item2"
$Var2 = "item2"
$Var2 = "item1"

これらの2つの変数を比較して、両方が等しいかどうかを確認するにはどうすればよいですか?

=====例で更新=====例:オブジェクトを取得して並べ替えます。

$Computers = (Get-Content "$PWD\Computers.txt").GetEnumerator() | Sort-Object {"$_"}

例:結果を追加して並べ替えます。

$Successful += $Computer
$Successful = $Successful.GetEnumerator() | Sort-Object {"$_"}

スクリプトの例:上記の例を使用して、次のスクリプトを作成しました。この例では、カウントではなく結果を確認できましたが、内容によって、より正確な比較を行うことができました。「Successful.count-eqComputers.count」を使用する前は、コンピューターが2回入力されたかどうかをチェックしていませんでした。

$Computers = (Get-Content "$PWD\Computers.txt").GetEnumerator() | Sort-Object {"$_"}
$HotFixes = Get-Content "$PWD\HotFixes.csv"
CLS
While (!$Successful -OR $Successful -ne $Computers) {
    foreach  ($Computer in $Computers) {
        $MissingCount = 0
        IF (!$Successful -NotLike "*$Computer*") {
            Write-Host "$Computer`: Connecting"
            If (Test-Connection -ComputerName $Computer -Count 1 -quiet) {
                Write-Host "$Computer`: Connected"
                [string]$Comparison = get-hotfix -ComputerName $Computer | Select -expand HotFixID
                ForEach ($HotFix in $HotFixes) {
                    IF ($Comparison -NotLike "*$HotFix*") {
                        $Results += "$Computer,$HotFix"
                        $MissingCount++
                    }
                }
                Write-Host "$Computer`: $MissingCount Patches Needed"
                $Successful += $Computer
                $Successful = $Successful.GetEnumerator() | Sort-Object {"$_"}
            } ELSE {
                Write-Host "$Computer`: Unable to connect"
            }
        } ELSE {
            Write-Host "$Computer already completed"
        }
    Write-Host "$Computer`: Complete"
    Write-Host
    }

}

$Results
4

1 に答える 1

4

文字の位置に関係なく、コンテンツが等しいかどうかを確認したい場合は、文字列をその文字に分割し、結果を並べ替えてから、Compare-Objectコマンドレットを使用できます。結果がないということは、変数が等しいことを意味します。

$v1 = $Var1.GetEnumerator() | Sort-Object {"$_"}
$v2 = $Var2.GetEnumerator() | Sort-Object {"$_"}
compare $v1 $v2
于 2012-12-16T14:01:48.650 に答える