执行F#脚本

Yin*_*ing 12 .net f#

我正在尝试通过在F#中编写小型控制台脚本来代替我编写shell脚本/批处理文件的常用方法来练习我的F#.我目前使用"fsi script.fsx [args]"运行它们.有没有办法可以将这些fsx文件与fsi关联起来,以便我可以直接运行它们,如"script.fsx [args]"?

Luc*_*c C 9

对的,这是可能的.

这里有两个键:

  1. 您需要将应用程序绑定到".fsx"扩展名.执行此操作的确切方法可能会在操作系统版本之间略有不同(我之前只通过直接编辑注册表来完成此操作,因此我无法在此处提供通用解决方案); 确保要执行的命令确实包含脚本参数(as %*),因此绑定注册表中的shell\open\command条目应该看起来像

    "c:\Program Files\FSharp-1.9.9.9\bin\fsi.exe" "@%1" %*

    有关详细信息,请参阅Gradbot的响应.

  2. 您可能希望将要触发脚本执行的扩展(在本例中为".fsx")添加到PATHEXT环境变量,因此即使没有指定脚本的扩展名,CMD.exe也可以找到该脚本.警告:如果您担心系统的安全性,请重新考虑此步骤 - VBScripts在默认Windows XP上注册,旧系统提供类似功能的事实在过去被病毒编写者利用(我不知道)如果在Vista或Windows 7上仍然如此.

  • 您还可以在命令行中使用"ftype"和"assoc"命令(至少在我尝试过的所有Windows版本中)来完成#1. (3认同)