繁体   English   中英

F#以编程方式运行.fsx脚本文件

[英]F# programmatically running .fsx script file

我确信这一定非常简单,但我似乎无法使其发挥作用。 假设我有一个.fsx脚本文件,并希望以编程方式执行它。 我猜想有人必须在某个时候写过关于此的博客,但我似乎无法找到一个执行我的简单场景的例子。 基本上,我想以编程方式复制右键单击.fsx文件并选择“使用F#Interactive运行...”时发生的情况。

如评论中所述,您可以将UseShellExecute设置为false以避免打开Windows shell。 这样,您可以直接在F#shell中输出:

open System.Diagnostics

let execScript script =
    let psi = new ProcessStartInfo(@"c:\Program Files\Microsoft F#\v4.0\Fsi.exe")
    psi.Arguments <- script
    psi.UseShellExecute <- false
    let p = Process.Start(psi)
    p.WaitForExit()
    p.ExitCode

随机乱搞命令行args后我终于开始工作了。 我觉得有点蹩脚回答我自己的问题,但希望它仍能帮助别人。 原来我的困惑是命令行参数的正确用法。 如果某人有比我所说的更优雅或更有用的东西,我会给你答案。

open System.Diagnostics

let launchExecutable() =
    let proc = new Process()
    proc.StartInfo.FileName <- @"C:\Program Files (x86)\Microsoft F#\v4.0\fsi.exe"
    proc.StartInfo.Arguments <- @"--exec --nologo pathToFSXFile\Test.fsx"
    proc.Start()


launchExecutable();;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM