5

我有一堆 F# 脚本 (fsx) 用于满足我的基本部署需求。我只需右键单击它们并说“使用 F# 交互式运行”

但是,有时脚本会失败,我想保持交互式控制台运行。到目前为止,我还没有找到实现这一目标的好方法。

我尝试手动启动 fsi.exe,但是如何从那里启动我的脚本?

4

3 回答 3

9

如果您足够老练,您可能只想添加另一个类似于 的资源管理器上下文菜单项,但在脚本终止Run with F# Interactive后保持控制台窗口打开。.fsx以下是如何在 Windows7/VS2012 上实现这一点的工作大纲:

  • 被管理员打开regedit并找到密钥HKEY_CLASSES_ROOT\VisualStudio.fsx.11.0\shell
  • 添加具有一些唯一名称的新子键,例如openRunCmd(Default)为这个键赋值,无论你想在上下文菜单中看到什么,也许Run with Fsi in shell
  • 最后,将此子键的子键HKEY_CLASSES_ROOT\VisualStudio.fsx.11.0\shell\openRunCmd\command和设置(Default)值添加到以下行:

    c:\windows\system32\cmd.exe /Q /K %%USERPROFILE%%\fsx.bat "%1"

现在,关闭regedit,转到您的主目录并在那里创建一个fsx.bat包含以下行的批处理文件:

"C:\Program Files (x86)\Microsoft SDKs\F#\3.0\Framework\v4.0\Fsi.exe" --quiet --exec "%1"

在这些 mods 之后,您将能够.fsx用鼠标右键单击任何脚本,选择Run with Fsi in shell并让 shell 窗口在脚本终止后停留,直到您关闭它。只需进行一些小的调整,同样的方法将适用于 VS2010。

如果您的系统设置与上述设置不同,请注意调整细节。祝你好运!

更新:对于那些想在家里或工作中尝试的人,我在这里发布了详细的演练。

于 2012-07-06T19:25:07.763 回答
3
#load "myScipt.fsx";;

我认为应该工作。但我自己更喜欢有单独的控制台窗口(cmd.exe),我可以从中运行fsi myScipt.fsx并查看输出。

于 2012-07-06T13:46:34.203 回答
0

我创建了一个 Windows 快捷方式

目标:

cmd /k "C:\Program Files (x86)\Microsoft SDKs\F#\3.1\Framework\v4.0\Fsi.exe" deploy.fsx

开始于:

C:\FolderContaningFsxScript

如果脚本失败,这会使窗口保持打开状态,这样我就可以看到任何编译错误。如果脚本成功运行,它也会使窗口保持打开状态,这可能是可取的,也可能是不可取的。

我发现单击快捷方式而不是右键单击 > 使用 F# Interactive 运行更容易。我认为带有上述命令的批处理文件也可以。

于 2015-05-28T11:41:30.157 回答