首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >添加"select-object“的附加属性?

添加"select-object“的附加属性?
EN

Stack Overflow用户
提问于 2015-07-20 21:17:11
回答 1查看 736关注 0票数 0

我尝试向select-object输出添加其他属性。但是,它得到了以下错误?

Select-Object :无法找到接受参数'System.Object[]‘的位置参数。

代码语言:javascript
复制
$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
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-20 21:52:31

您尝试两次使用-Property,隐式地使用位置参数$c[$type],并显式地使用计算出的属性。您需要将属性列表和计算的属性组合到一个数组中,并将其传递给-Property参数。

要做到这一点,一种方法是使用在对您的问题的评论中建议的@PetSerAl表达式:

代码语言:javascript
复制
$files | % {
  $filepath = $_.fullname
  $type = getType $_.name

  Import-Csv $_ |
    select @($c[$type]; @{n="File";e={$filepath}}) |
    Out-GridView
}

不过,我认为将计算所得的财产只包括在原来的财产列表中会更简单:

代码语言:javascript
复制
$c = @{
  a = "...", "...", "...", @{n='File';e={$_.FullName}}
  b = "...", "...", "...", @{n='File';e={$_.FullName}}
}

因此,您以后不需要操作该列表:

代码语言:javascript
复制
$files | % {
  $type = getType $_.Name
  Import-Csv $_ | select $c[$type] | Out-GridView
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31526506

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档