我有一堆 F# 脚本 (fsx) 用于满足我的基本部署需求。我只需右键单击它们并说“使用 F# 交互式运行”
但是,有时脚本会失败,我想保持交互式控制台运行。到目前为止,我还没有找到实现这一目标的好方法。
我尝试手动启动 fsi.exe,但是如何从那里启动我的脚本?
我有一堆 F# 脚本 (fsx) 用于满足我的基本部署需求。我只需右键单击它们并说“使用 F# 交互式运行”
但是,有时脚本会失败,我想保持交互式控制台运行。到目前为止,我还没有找到实现这一目标的好方法。
我尝试手动启动 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。
如果您的系统设置与上述设置不同,请注意调整细节。祝你好运!
更新:对于那些想在家里或工作中尝试的人,我在这里发布了详细的演练。
#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 运行更容易。我认为带有上述命令的批处理文件也可以。