我想比較兩個變量的值,但是這兩個字符串的內容是不同的順序PowerShell的比較兩個字符串
的內容例子:
$Var1 = "item1"
$Var1 += "item2"
$Var2 = "item2"
$Var2 = "item1"
我如何比較這兩個變量看看他們是否平等?
=====使用示例更新===== 示例:獲取對象並對其進行排序。
$Computers = (Get-Content "$PWD\Computers.txt").GetEnumerator() | Sort-Object {"$_"}
示例:添加結果並對它們進行排序。
$Successful += $Computer
$Successful = $Successful.GetEnumerator() | Sort-Object {"$_"}
示例腳本:使用上面的示例創建以下腳本。這個例子讓我檢查結果,而不是計數,但通過內容讓我得到更準確的比較。在我使用「Successful.count -eq Computers.count」之前,它不會檢查計算機是否輸入了兩次。
$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
這個問題不是100%清楚的,你是什麼意思的'內容是不同的順序'?字符順序是否顛倒?從你的例子來看,這些詞是顛倒過來的。不同的!=倒過來,例如,它也可以是隨機的。請說明您的內容(可以)與您希望比較的內容有何不同,以及您期望得到的某些示例字符串的結果。 – Neolisk