【发布时间】:2020-07-01 12:21:51
【问题描述】:
我正在比较 .JSON 文件,使用 Compare-Object 像这样:
# Compare two files
$BLF = (Get-Content -Path C:\Users\...\Documents\Android1.json)
$CLF = (Get-Content -Path C:\Users\...\Documents\Android2.json)
$a = Compare-Object -ReferenceObject $BLF -DifferenceObject $CLF -IncludeEqual
那么$a 就是System.Array。它包含 .JSON 文件中的所有行,每个都在 InputObject 和 SideIndicator 中以显示差异。因此对于诸如
# From file 1
"workProfilePasswordMinimumLength": false,
"workProfilePasswordMinLowerCaseCharacters": false,
"workProfilePasswordMinUpperCaseCharacters": null,
"deviceManagementApplicabilityRuleOsEdition": null,
# From file 2
"workProfilePasswordMinimumLength": true,
"workProfilePasswordMinLowerCaseCharacters": false,
"workProfilePasswordMinUpperCaseCharacters": null,
"deviceManagementApplicabilityRuleOsEdition": true,
比较函数给出使用
$a.psobject.ImmediateBaseObject
输出:
InputObject SideIndicator
----------- -------------
"workProfilePasswordMinLowerCaseCharacters": false, ==
"workProfilePasswordMinUpperCaseCharacters": null, ==
"workProfilePasswordMinimumLength": true, =>
"deviceManagementApplicabilityRuleOsEdition": true, =>
"workProfilePasswordMinimumLength": false, <=
"deviceManagementApplicabilityRuleOsEdition": null, <=
我的问题是:我想对这些 InputObjects 进行排序,使它们像这样:
InputObject SideIndicator
----------- -------------
"workProfilePasswordMinLowerCaseCharacters": false, ==
"workProfilePasswordMinUpperCaseCharacters": null, ==
"workProfilePasswordMinimumLength": true, =>
"workProfilePasswordMinimumLength": false, <=
"deviceManagementApplicabilityRuleOsEdition": true, =>
"deviceManagementApplicabilityRuleOsEdition": null, <=
这样,当变量不同时,对匹配的名称进行排序。如何对它们进行排序?
【问题讨论】:
-
最简单的解决方案通常很有效:
Sort-Object
标签: powershell sorting pscustomobject