2017-02-09 17 views
1

Мне нужен скрипт, который периодически считывает значение реестра (REG_MULTI_SZ). Если значение изменилось →, сделайте что-нибудь.Сравнение переменных, содержащих значение реестра REG_MULTI_SZ

$itemList1 = Get-ItemPropertyValue -Path Registry::HKCU\SOFTWARE\Tester -Name TestValue 

# ... 

$itemList2 = Get-ItemPropertyValue -Path Registry::HKCU\SOFTWARE\Tester -Name TestValue 

if ($itemList1 -eq $itemList2) {echo "identical"} else {echo "different"} 
  • если значение TestValue рег является пустым, выходы сценария "отличается"
  • если значение TestValue рег имеет 1 строку только, сценарий выводит "идентичный "
  • , если значение регистра TestValue имеет более 1 строки, выходы сценария "идентичны"

Image

Вы можете предложить?

+0

'Сравнить-Object $ itemList1 $ itemList2' –

+0

Спасибо Ansgar, он выглядит отлично. – MaCae

+0

Можете ли вы указать, как я могу получить $ true значение, если переменные равны и значение $ false в случае, если они отличаются? – MaCae

ответ

0

REG_MULTI_SZ значения в основном струнные массивы. Для сравнения массивов используйте Compare-Object.

Compare-Object $itemList1 $itemList2 

Чтобы получить логическое значение из результата просто бросайте его BOOL и инвертировать значение:

![bool](Compare-Object $itemList1 $itemList2) 

Compare-Object возвращает пустой результат, если два сравниваемых объектов равны (и -IncludeEqual не использовался), а PowerShell может auto-convert пустым/$null значениям $false. Отрицание значения с помощью -not или ! инвертирует логику с «$false, если пустым» до «$true, если пустым».

+0

Спасибо большое, хорошее объяснение, это решило мою проблему. – MaCae

0
PS C:>$a=1;$b=2;$c=1 
PS C:> if (Compare-Object $a $b) { Write-Host Different } else { Write-Host Equal } 
Different 

PS C:\Users\amewald> if (Compare-Object $a $c) { Write-Host Different } else { Write-Host Equal } 
Equal 

Msdn Compare-Object:

ВЫХОДЫ

Отсутствует или объекты, которые отличаются

Это означает, что Compare-Object возвращает $null, если оба объекта являются одинаковыми.

Надежда, что помогает

 Смежные вопросы

  • Нет связанных вопросов^_^