【发布时间】:2021-07-15 18:17:43
【问题描述】:
每个月我都会从我们的电话提供商那里收到一份报告,其中包含所有费用的完整规格。在收到的数据中,我不想为每个电话用户创建有关电话使用情况的报告。 我在 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
感谢您的帮助!
【问题讨论】:
-
见:In Powershell, what's the best way to join two tables into one?:
$data1 |Join $Data2 -on Service
标签: powershell