我正在尝试使用比较两个 .json 文件
# Compare two files
$BLF = (Get-Content -Path C:\Users\...\Documents\Android1.json)
$CLF = (Get-Content -Path C:\Users\...\Documents\Android2.json)
$aUnsorted = Compare-Object -ReferenceObject $BLF -DifferenceObject $CLF -IncludeEqual
我编写了代码来比较常规变量,例如下面的“passcodeBlockSimple”,并将值注册在一个文件与另一个文件中。我想对括号内定义的值做同样的事情:
"variableName": [
"99"
]
当两个文件具有相同的值时,我有一个解决方案,方法是添加该值直到找到结束括号]。这给出了“variableName”:[“99”]。请参阅下面的变量“roleScopeTagIds”作为此类变量的示例。
我想在它们不同时找到值,但是 Compare-Object 的输出逐行列出了差异。下面的示例,当两个文件中的变量“restrictedApps”不同时,我丢失了有关变量“restrictedApps”的信息(File1 的值为“1”,File2 的值为“2”)。
InputObject SideIndicator
----------- -------------
"@odata.type": "#microsoft.graph.iosCompliancePolicy", ==
"roleScopeTagIds": [ ==
"0" ==
], ==
"version": 1, ==
"passcodeMinutesOfInactivityBeforeScreenTimeout": 1, ==
"managedEmailProfileRequired": false, ==
"restrictedApps": [ ==
], ==
"passcodeBlockSimple": false, =>
"2" =>
"passcodeBlockSimple": true, <=
"1" <=
这些文件是,文件 1:
"@odata.type": "#microsoft.graph.iosCompliancePolicy",
"roleScopeTagIds": [
"0"
],
"version": 1,
"passcodeBlockSimple": true,
"passcodeMinutesOfInactivityBeforeScreenTimeout": 1,
"managedEmailProfileRequired": false,
"restrictedApps": [
"1"
],
和文件 2:
"@odata.type": "#microsoft.graph.iosCompliancePolicy",
"roleScopeTagIds": [
"0"
],
"version": 1,
"passcodeBlockSimple": false,
"passcodeMinutesOfInactivityBeforeScreenTimeout": 1,
"managedEmailProfileRequired": false,
"restrictedApps": [
"2"
],
所以我的问题是:当变量不同时,如何找到变量的值,并且比较对象结果如上?
(我必须使用比较对象功能)