程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Powershell - 比较两个数组并将第二个数组中的额外数据写入第一个大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决PowersHell - 比较两个数组并将第二个数组中的额外数据写入第一个?

开发过程中遇到PowersHell - 比较两个数组并将第二个数组中的额外数据写入第一个的问题如何解决?下面主要结合日常开发的经验,给出你关于PowersHell - 比较两个数组并将第二个数组中的额外数据写入第一个的解决方法建议,希望对你解决PowersHell - 比较两个数组并将第二个数组中的额外数据写入第一个有所启发或帮助;

每个月我都会从我们的电话提供商那里收到一份报告,其中包含所有费用的完整规格。在收到的数据中,我不想为每个电话用户创建关于电话使用情况的报告。 我用 Excell 解决了这个问题,但想用 PowersHell 做一个更好的解决方案。但是……问题……

其中一列包含订阅、呼叫类型等数据。该列总共有大约 100 种不同类型的数据,但我想将它们分为 4 个不同的类别。

我有一个列表,其中包含另一个文件中所有类型的数据和类别,但我找不到一种方法来检查第一个列表中的数据,将它们与第二个列表进行比较,并将类别写回第一个数组作为额外数据。在 Excel 中,我为此使用了查找功能。

下面是我想要的示例: 我有一些数据:

  $data1 = @(
   [pscustomobject]@{No='1';name='Joe';service='Subscription 1';Price='5'}
   [pscustomobject]@{No='2';name='Sue';service='Subscription 2';Price='4'}
   [pscustomobject]@{No='3';name='Joe';service='Call Price 1';Price='0,1'}
   [pscustomobject]@{No='4';name='Sue';service='Call Price 2';Price='0,2'}
   [pscustomobject]@{No='5';name='Sue';service='Call Price 1';Price='0,1'}
   [pscustomobject]@{No='6';name='Joe';service='Call Price 2';Price='0,2'})

以及类别列表:

  $data2 = @(
   [pscustomobject]@{service='Subscription 1';OvervIEw='Subscriptions'}
   [pscustomobject]@{service='Subscription 2';OvervIEw='Subscriptions'}
   [pscustomobject]@{service='Call Price 1';OvervIEw='Calls'}
   [pscustomobject]@{service='Call Price 2';OvervIEw='Calls'}
   [pscustomobject]@{service='Call Price 1';OvervIEw='Calls'}
   [pscustomobject]@{service='Call Price 2';OvervIEw='Calls'})

我想要一个通过服务将它组合在一起的输出:

No       : 1
name     : Joe
service  : Subscription 1
OvervIEw : Subscriptions
Price    : 5

No       : 2
name     : Sue
service  : Subscription 2
OvervIEw : Subscriptions
Price    : 4

No       : 3
name     : Joe
service  : Call Price 1
OvervIEw : Calls
Price    : 0,1

No       : 3
name     : Sue
service  : Call Price 2
OvervIEw : Calls
Price    : 0,2

No       : 3
name     : Sue
service  : Call Price 1
OvervIEw : Calls
Price    : 0,1

No       : 3
name     : Joe
service  : Call Price 2
OvervIEw : Calls
Price    : 0,2

感谢您的帮助!

解决方法

首先从 $data2 中的数据创建字典:

$serviCETypes = @{}

$data2 |ForEach-Object { $serviCEType[$_.service] = $_.overview }

现在您可以使用 SELEct-Object 通过单次查找来解析服务类别:

$usageData = $data1 |SELEct *,@{name='Overview';Expression={$serviCEType[$_.service]}}

大佬总结

以上是大佬教程为你收集整理的Powershell - 比较两个数组并将第二个数组中的额外数据写入第一个全部内容,希望文章能够帮你解决Powershell - 比较两个数组并将第二个数组中的额外数据写入第一个所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。