如果我使用 FarNet 和 PowerShellFar 运行 farmanager,我可以通过选择F11 | .NET PowerShell | 编辑器控制台。这个控制台基于 far 编辑器。我可以将 powershell 脚本的片段粘贴到这个控制台中并进行编辑。
唯一的问题是,如果我想在控制台中使用多行函数或控制流段。如果我将其粘贴进去,则不会产生任何效果。如果我尝试输入一个,则会收到类似以下的错误:
ERROR: IncompleteParseException:
Missing closing '}' in statement block.
At line:1 char:42
+ foreach ($number in 1..10 ) { $number * 7 <<<<
+ CategoryInfo : ParserError: (CloseBraceToken:TokenId) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : MissingEndCurlyBrace
这仅仅是 PowerShellFar 的一个限制吗?
答案1
这只是 PSF 编辑器控制台功能的一个限制。编辑器控制台首先是为真正的单行命令而设计的。
无论如何,多行命令不适合类似控制台的 UI:即使您可以输入并运行这样的命令,也无法轻松地将其带回来修改并再次运行。
但您仍然可以复制/粘贴/调用代码片段。复制、粘贴,然后在编辑器控制台中选择其文本并执行以下操作:F11 | PowerShellFar | 调用选定的代码。虽然有点别扭,但还是有效。
更新
PowerShellFar 5.0.51 支持编辑器控制台中的多行命令:
- 与 ISE 类似,
ShiftEnter
只需添加新行而不调用命令。 Enter
在最后一个命令区域的任意位置调用整个区域代码。- 因此,可以粘贴多行代码并通过 调用它
Enter
。