我尝试向select-object输出添加其他属性。但是,它得到了以下错误?
Select-Object :无法找到接受参数'System.Object[]‘的位置参数。
$c = @{a = "...","...","..."; b = "...","...","..."}
$files |
% {
$filepath = $_.fullname
write-host $filepath
$type = getType $_.name
# The following statement works
Import-Csv $_ | select $c[$type] | OUT-GRIDVIEW
# The following doesn't work
Import-Csv $_ | select $c[$type] -property @{n="File"; e={$filepath}}| out-gridview
}发布于 2015-07-20 21:52:31
您尝试两次使用-Property,隐式地使用位置参数$c[$type],并显式地使用计算出的属性。您需要将属性列表和计算的属性组合到一个数组中,并将其传递给-Property参数。
要做到这一点,一种方法是使用在对您的问题的评论中建议的@PetSerAl表达式:
$files | % {
$filepath = $_.fullname
$type = getType $_.name
Import-Csv $_ |
select @($c[$type]; @{n="File";e={$filepath}}) |
Out-GridView
}不过,我认为将计算所得的财产只包括在原来的财产列表中会更简单:
$c = @{
a = "...", "...", "...", @{n='File';e={$_.FullName}}
b = "...", "...", "...", @{n='File';e={$_.FullName}}
}因此,您以后不需要操作该列表:
$files | % {
$type = getType $_.Name
Import-Csv $_ | select $c[$type] | Out-GridView
}https://stackoverflow.com/questions/31526506
复制相似问题