【问题标题】:Powershell Continuations (>>) Broken In ISE But Not Normal PromptPowershell Continuations (>>) 在 ISE 中坏了但不是正常提示
【发布时间】:2013-10-18 02:51:52
【问题描述】:

我已经为此工作了 2 个小时,我正在拔头发。我在 ISE 中处理我的个人资料脚本。我不知道它是否相关,但我试图将一些命令存储在变量中并稍后执行它们。无论如何,在尝试创建此处字符串时,我开始遇到一个奇怪的错误:

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】:

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

    【讨论】:

    • 哇,你说得对。我知道 SHIFT+ENTER,但我认为行延续在 ISE 中的工作方式与在控制台中的工作方式相同。我无缘无故地为此工作了几个小时感到愚蠢。谢谢 JPBlanc。
    • 很遗憾,链接坏了
    • 谢谢,链接已修复。
    猜你喜欢
    • 1970-01-01
    • 2012-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-05
    • 2014-11-03
    相关资源
    最近更新 更多