我有一堆F#脚本(fsx),用于我的基本部署需求。我只需右键单击它们并说“使用F#交互式运行”如何在运行后保持fsi.exe打开
但是,有时脚本会失败,我希望保持交互式控制台运行。到目前为止,我还没有想出一个很好的方法来实现这一目标。
我试着手动启动fsi.exe,但是我怎么能从那里启动我的脚本?
我有一堆F#脚本(fsx),用于我的基本部署需求。我只需右键单击它们并说“使用F#交互式运行”如何在运行后保持fsi.exe打开
但是,有时脚本会失败,我希望保持交互式控制台运行。到目前为止,我还没有想出一个很好的方法来实现这一目标。
我试着手动启动fsi.exe,但是我怎么能从那里启动我的脚本?
如果您足够的黑客,您可能需要添加类似于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。
如果您的系统设置与上述不同,请注意调整细节。祝你好运!
更新:对于那些想在家中或在工作中尝试此操作的人,我已发布详细的步骤here。
#load "myScipt.fsx";;
应该工作我认为。但我自己我更喜欢只有单独的控制台窗口(cmd.exe),从中我可以运行fsi myScipt.fsx
并查看输出。
我创建了一个Windows快捷方式与
目标:
cmd /k "C:\Program Files (x86)\Microsoft SDKs\F#\3.1\Framework\v4.0\Fsi.exe" deploy.fsx
开始在:
C:\FolderContaningFsxScript
这样可以使窗口打开,如果脚本失败,这样我就可以看到任何编译错误。如果脚本运行成功,它也会保持窗口打开,这可能会或可能不合意。
我发现只需单击快捷键而不是右键单击>使用F#Interactive运行它更容易。我认为使用上述命令的批处理文件也可以工作。
哇!这听起来非常棒。将尽快尝试(可能在星期一) – Christoph 2012-07-06 22:00:18
我已经添加了一个链接到我的答案与详细的演练。 – 2012-07-06 22:49:49
感谢您为此付出的努力。我会加倍upvote,如果我可以:) – Christoph 2012-07-07 20:24:44