Powershell Continuations(>>)在ISE中断,但不是正常提示

时间:2013-10-18 02:51:52

标签: powershell

我已经在这个工作了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和普通控制台中是相同的。

提前感谢您的帮助。

更新 哇我觉得很蠢。显然这是预期的行为。我可以让SWORN认为它之前的行为有点不同。我想我累了。

1 个答案:

答案 0 :(得分:1)

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

中找到