我确信这一定非常简单,但我似乎无法使其发挥作用。假设我有一个.fsx
脚本文件,并希望以编程方式执行它。我猜想有人必须在某个时候写过关于此的博客,但我似乎无法找到一个执行我的简单场景的例子。基本上,我想以编程方式复制右键单击.fsx
文件并选择“使用F#Interactive运行...”时发生的情况。
答案 0 :(得分:2)
如评论中所述,您可以将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
答案 1 :(得分:1)
随机乱搞命令行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();;