저는 Powershell을 처음 접했고 문제가 있습니다. Compare-Object
또는 Sort-Object
기능을 사용할 수없는 것 같습니다. 두 개의 Arraylists가 있는데 "Table"유형의 오브젝트 10 개를 채 웁니다. 이 작동하지 않는 것Arraylists 정렬 및 비교
Compare-Object $list1 $list2 | ForEach-Object {$_.InputObject}
나는 정말 비교 아무것도 안하고 있기 때문에 생각 :
#Create Arraylists
$list1 = new-object System.Collections.ArrayList
$list2 = new-object System.Collections.ArrayList
#Declare Table-Class
class Table {
[String] $name
[Int] $number
}
#Fill list1
[Int] $i = 0
while ($i -lt 10) {
$entry = new-Object Table
$entry.name = "Name";
$entry.number = $i;
$list1.Add($entry)
$i++
}
#Fill list2
[Int] $j = 10
while ($j -gt 0) {
$entry = new-Object Table
$entry.name = "name";
$entry.number = $j;
$list2.Add($entry)
$j--
}
지금 나는이 같은 두 ArrayLists을 비교합니다. 누군가가 올바른 구문으로 나를 도울 수 있다면 정말 행복 할거야. 어쨌든이 비교는 어떻게 든 $false
부울을 반환한다고 생각합니다. 사실이라면 $list2
을 $entry.number
으로 정렬하고 싶습니다.
$list2 = $list2 | Sort-Object -Property { $_[1] }
을하지만 내 목록은 전혀 변경되지 않습니다
나는 그런이를 시도하고있다. 이미 여러 가지 "솔루션"을 시도했지만 실제 솔루션 인 것은 아닙니다.
누군가가 나를 도울 수 있거나 적어도 올바른 방향으로 나를 가리킬 수 있다면 정말 기뻐할 것입니다.
편집 : 미래의 독자들을 위해, 여기에 작업 구문입니다
#sort list by the property number
$list2 = $list2 | sort-object -Property number
#count differences and if differences greater than 0, do stuff
[Int] $diff
$properties = $list1 | Get-Member -MemberType Property | Select-Object -ExpandProperty Name
foreach ($property in $properties) {
$diff = 0
$diff = (Compare-Object $list1 $list2 -Property "$property").count
if ($diff -ne 0) {
#do stuff
}
else {
#do something else
}
}
*** Get-Help Compare-Object *** 및 *** Get-Help Sort-Object ***로 시작하십시오. 나는 그들이 당신이 생각하는 것과 정확하게 일치하는지 확신하지 못합니다. – EBGreen
아래 답변 중 하나가 문제를 해결하면 받아 들여야합니다 (해당 답변 옆의 체크 표시를 클릭하십시오). 그것은 두 가지 일을합니다. 모든 사람들이 귀하의 문제가 만족스럽게 해결되었다는 사실을 모든 사람에게 알리고, 도움을 요청한 사람에게 도움을줍니다. [전체 설명은] (http://meta.stackexchange.com/a/5235)을 참조하십시오. – Clijsters