首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Powershell :使用带有字符串的Select-Object表达式

Powershell :使用带有字符串的Select-Object表达式
EN

Stack Overflow用户
提问于 2013-06-04 22:40:12
回答 1查看 48.5K关注 0票数 8

对于某些脚本,我需要一个由计算属性组成的输出。

例如,对于ip.txt中的ip地址列表,我想知道它们是否响应ping。因此,我尝试使用以下命令:

代码语言:javascript
复制
Get-Content .\ip.txt | Select-Object $_,@{Name="ping?";Expression={Test-Connection $_ -Quiet -Count 1}}

但是不管我在scriptblock表达式中做什么,我都会得到一个错误。

错误(法语,抱歉):

Select-Object : Paramètre Null. Le type attendu doit être l'un des suivants : {System.String, System.Management.Automation.ScriptBlock}. Au niveau de ligne : 1 Caractère : 37 + Get-Content .\ip.txt | Select-Object <<<< $_,@{Name="ping?";Expression={Test-Connection $_ -Quiet -Count 1}} + CategoryInfo : InvalidArgument: (:) [Select-Object], NotSupportedException + FullyQualifiedErrorId : DictionaryKeyUnknownType,Microsoft.PowerShell.Commands.SelectObjectCommand

我以前在一些脚本中使用了“计算属性”,但使用的是目录对象。为什么它不能与字符串一起工作?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-04 22:50:38

请尝试执行此操作,您需要为每个值创建计算属性:

代码语言:javascript
复制
Get-Content .\ip.txt | Select-Object  @{n="Server IP";e={$_}},@{n="ping?";e={[bool](Test-Connection $_ -Quiet -Count 1)}}

代码中的问题是$_,而不是计算的属性。Select-object accept和属性数组,如果在传递的数组中,$_不作为属性计算。如果只选择(as select-object $_ -object -prop $null ),管道项目就是输出。

票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16920689

复制
相关文章

相似问题

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