我有一堆F#脚本(fsx),我用它来满足我的基本部署需求。我只需右键单击它们并说出#34;使用F#interactive"
运行但是,有时脚本会失败,我希望保持交互式控制台的运行。到目前为止,我还没有找到实现这一目标的好方法。
我尝试手动启动fsi.exe但是如何从那里启动脚本?
答案 0 :(得分:9)
如果你足够hack,你可能只想添加另一个类似于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"
在这些mod之后,您可以使用鼠标右键单击任何.fsx
脚本,选择Run with Fsi in shell
并在脚本终止后保留shell窗口,直到您关闭它。只需很少的小调整,相同的方法就可以用于VS2010。
如果您的系统设置与上述设置不同,请务必小心调整细节。祝你好运!
更新:对于那些想在家中或工作中尝试此操作的人,我已经发布了详细的演练here。
答案 1 :(得分:3)
#load "myScipt.fsx";;
我认为应该工作。但是我自己更喜欢只有一个单独的控制台窗口(cmd.exe),我可以从中运行fsi myScipt.fsx
并查看输出。
答案 2 :(得分:0)
我用
创建了一个Windows快捷方式目标:
cmd /k "C:\Program Files (x86)\Microsoft SDKs\F#\3.1\Framework\v4.0\Fsi.exe" deploy.fsx
开始于:
C:\FolderContaningFsxScript
如果脚本失败,这会使窗口保持打开状态,这样我就可以看到任何编译错误。如果脚本成功运行,它也会保持窗口打开,这可能是也可能不合适。
我发现只需单击快捷方式而不是右键单击>使用F#Interactive运行。我认为使用上述命令的批处理文件也可以正常工作。