【发布时间】:2012-12-03 19:17:52
【问题描述】:
我正在尝试比较两个变量的值,但是这两个字符串的内容顺序不同
例子:
$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%清楚,
contents are in different order是什么意思?字符顺序是否颠倒?从您的示例中,单词是相反的。不同的!=反转,例如也可以随机化。请说明您的内容有多么不同(可能),您希望如何比较它,以及您希望获得一些示例字符串的哪些结果。
标签: powershell powershell-2.0 powershell-1.0