2012-07-06 48 views
5

我有一堆F#脚本(fsx),用于我的基本部署需求。我只需右键单击它们并说“使用F#交互式运行”如何在运行后保持fsi.exe打开

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

我试着手动启动fsi.exe,但是我怎么能从那里启动我的脚本?

回答

9

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

  • 都为admin开放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。

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

更新:对于那些想在家中或在工作中尝试此操作的人,我已发布详细的步骤here

+0

哇!这听起来非常棒。将尽快尝试(可能在星期一) – Christoph 2012-07-06 22:00:18

+0

我已经添加了一个链接到我的答案与详细的演练。 – 2012-07-06 22:49:49

+0

感谢您为此付出的努力。我会加倍upvote,如果我可以:) – Christoph 2012-07-07 20:24:44

3
#load "myScipt.fsx";; 

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

0

我创建了一个Windows快捷方式与

目标:

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

开始在:

C:\FolderContaningFsxScript 

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

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

相关问题