Мне нужно сравнить и объединить две хеш-таблицы, но сохранить значение определенного ключа.
$Left = @{Name = "Alex"; CreationDate = "2018-10-20"; Status = "Married"}
$Right = @{CreationDate = "2019-03-15"; Status = "Divorced"; City = "NY"; Country = "US"}
Как только эти два слиты, Имя не должно быть изменено , CreationDate должен оставаться"2001-10-20", как в таблице $ Left, необходимо состояние будет обновлен, а город и страна должны быть добавлены в список.
Следующий скрипт корректно обновляет, добавляет и сохраняет значения для всех ключей, но он переопределяет мою CreationDate.
Это для обновления некоторых тегов файлов с помощью Powershell.
function New-Result($Key, $Value) {
New-Object -Type PSObject -Property @{
Key = $Key
Value = $Value
}
}
[Object[]]$Results = $Left.Keys | % {
if ($Left.ContainsKey($_) -and !$Right.ContainsKey($_)) {
New-Result $_ $Left[$_]
}
}
$Results += $Right.Keys | % {
if (!$Left.ContainsKey($_) -and $Right.ContainsKey($_) -and ($Right[$_])){
New-Result $_ $Right[$_]
}
}
$Results += $Right.Keys | % {
if ($Left.ContainsKey($_) -and $Right.ContainsKey($_) -and ($Right[$_])) {
New-Result $_ $Right[$_]
}
}
return $Results
Мне нужно выбрать значение $ Left для ключа CreationDate, но пока я не могу этого сделать.