Powershell创建CSV文件



我是powershell的新手。但是学习…我和我的剧本要实现我想要的东西还很远。我只是错过了最后一部分。我希望有人能我遇到的问题是在创建CSV文件时没有得到正确的结果。

好的,我有一个像这样的CSV文件:

A           B
AAAA        111111
CCCC        222222
EEEE        333333
HHHH        444444

现在我有一个数组的信息:

AAAA
BBBB
CCCC
DDDD
HHHH

将数组中的值与CSV文件进行比较。我想收到b列的结果

工作正常。我收到这样的结果:

111111
222222
444444

基本上这是正确的。但是…我需要接收这个:

111111
222222
444444

当没有找到值时,我想要一个空单元格

我希望我的问题足够清楚;)

我的代码是:

$CSV = import-csv C:tmpmac-vendors-export.csv -Delimiter ';'
$vendormacarray = $Vendormac
$vendorname = foreach ($UniqueVendorMac in $Vendormacarray) {
$csv | where-object {$_.A -match $UniqueVendorMac} | select-object  -Expand B
}

我想我必须添加一些像-or $_.A -eq 'null'....但最后这部分我想不明白。

希望有人能帮我解决这个问题。

谢谢

使用哈希表将A中的项目存储为键,将B中的项目存储为值,这样您可以在与$vendormacarray比较时执行快速查找。

一个例子:

$map = @{}
Import-Csv C:tmpmac-vendors-export.csv -Delimiter ';' | ForEach-Object {
$map[$_.A] = $_.B
}
$vendorMac = @(
'AAAA'
'BBBB'
'CCCC'
'DDDD'
'HHHH'
)
$vendorMac | ForEach-Object {
[pscustomobject]@{
MAC      = $_
ThingInB = $map[$_]
}
}

那么使用您的问题中的数据的输出将类似于:

MAC  ThingInB
---  --------
AAAA 111111
BBBB
CCCC 222222
DDDD
HHHH 444444

最新更新