我已经在这个工作了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实际上总是会出错。它隐藏了它:
如果我在常规窗口中输入上述命令之一,当它以静默方式工作时,如果我稍后返回并查看$ error对象,则会出现相同的错误。所以基本上ISE决定停止压制这些错误。我查看了所有我能想到的设置$ WarningPreference $ ErrorActionPreference等,但它们在ISE和普通控制台中是相同的。
提前感谢您的帮助。
更新 哇我觉得很蠢。显然这是预期的行为。我可以让SWORN认为它之前的行为有点不同。我想我累了。
答案 0 :(得分:1)
在PowerShell ISE中,您可以在命令窗格中运行多行命令。按Shift + Enter可输入多行命令的每一行,并在最后一行后按ENTER键以执行多行命令。您可以在How to Use the Console Pane in the Windows PowerShell ISE。
中找到