首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么不能通过管道传输任何powershell语句(foreach、while等)?

为什么不能通过管道传输任何powershell语句(foreach、while等)?
EN

Stack Overflow用户
提问于 2018-06-01 22:43:48
回答 1查看 155关注 0票数 0

为什么你不能从任何powershell语句中获取管道,比如foreach和while (‘不允许空的管道元素’)?有没有工程上的限制?

代码语言:javascript
复制
PS /Users/me> foreach ($i in 1,2,3) { $i } | measure

At line:1 char:30
+ foreach ($i in 1,2,3) { $i } | measure
+                              ~
An empty pipe element is not allowed.
+ CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : EmptyPipeElement


PS /Users/me> for ($i = 1;$i -lt 10; $i++) { $i } | measure    

At line:1 char:37
+ for ($i = 1;$i -lt 10; $i++) { $i } | measure                                                                         
+                                     ~
An empty pipe element is not allowed.
+ CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : EmptyPipeElement


PS /Users/me> $i = 1
PS /Users/me> while ($i -lt 10 ) { $i;$i++ } | measure                                     

At line:1 char:32
+ while ($i -lt 10 ) { $i;$i++ } | measure                                                 
+                                ~
An empty pipe element is not allowed.
+ CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : EmptyPipeElement

powershell语句列表:

如果..否则

交换机

做..而

ForEach

中断

继续

EN

回答 1

Stack Overflow用户

发布于 2018-06-01 23:38:29

正如您已经注意到的,PowerShell语言语句不会输出到管道中(因此出现错误-“不允许使用空管道元素”)。以下是两种可能的解决方法:

  1. 使用$() (子表达式)运算符对语句进行包装。示例:

$(foreach ($i in 1,2,3) { $i }) |调用{ }中的语句(即使其成为脚本块),并使用& (调用/调用)操作符调用它。示例:

&{ Measure-Object ($i in 1,2,3) { $i }}| foreach

两者之间的区别在于scriptblock语法创建了一个新的作用域,因此当调用完成时,该作用域中的变量将被释放。在上面的两个示例中,这意味着$i是在执行第一个示例之后定义的,而不是在执行第二个示例之后定义的。根据您要尝试做的事情,这种差异可能会很有用。(例如,当在PowerShell命令行中工作时,我更喜欢第二种语法,以避免临时变量污染当前作用域。)

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

https://stackoverflow.com/questions/50645962

复制
相关文章

相似问题

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