Powershell延续(>>)在ISE中损坏,但不是正常提示

问题描述 投票:1回答:1

我已经为此工作了2个小时,正在拔头发。我在ISE上的个人资料脚本中工作。我不知道它是否相关,但是我试图将一些命令存储在变量中,然后再执行。无论如何,在尝试创建here-string时,我开始出现一个奇怪的错误:

PS> $ foo = @“

通常我会期望

>>

跟随,但是我收到此消息:

PS C:\ Users \ lamartin> @“该字符串缺少终止符:“ @。+ CategoryInfo:ParserError:(:) [],ParentContainsErrorRecordException+ FullyQualifiedErrorId:TerminatorExpectedAtEndOfString

总而言之,我发现我所有的多行命令都被破坏了,但仅限于ISE:

PS> gci |

不允许使用空管道元素。+ CategoryInfo:ParserError:(:) [],ParentContainsErrorRecordException+ FullyQualifiedErrorId:EmptyPipeElement

PS> gci |%{

缺少在语句块中的关闭'}'。+ CategoryInfo:ParserError:(:) [],ParentContainsErrorRecordException+ FullyQualifiedErrorId:MissingEndCurlyBrace

我删除了所有配置文件和所有模块。我确认没有多余的东西被加载(我可以找到)。我确实发现了一些有趣的东西。事实证明,只要执行继续操作,Powershell实际上总是会出错。它只是将其隐藏:

http://connect.microsoft.com/PowerShell/feedback/details/371321/benign-errors-for-missing-closing-are-left-in-the-error-variable

并且可以肯定的是,如果我在常规窗口中键入上述命令之一,而它会以静默方式运行,那么如果我稍后返回并查看$ error对象,则会出现相同的错误。因此,基本上ISE已决定停止抑制这些错误。我查看了所有可以想到的$ WarningPreference $ ErrorActionPreference等设置,但在ISE和常规控制台中它们是相同的。

提前感谢您的帮助。

更新哇,我很傻。显然,这是预期的行为。我可能会发誓,它的行为稍早有所不同。我想我很累。

powershell
1个回答
1
投票

在PowerShell ISE中,您可以在命令窗格中运行多行命令。按SHIFT + ENTER输入多行命令的每一行,并在最后一行之后按ENTER以执行多行命令。您可以在How to Use the Console Pane in the Windows PowerShell ISE中找到它。

© www.soinside.com 2019 - 2024. All rights reserved.