我相信这一定很容易,但我似乎不能让它工作。假设我有一个.fsx脚本文件,并希望以编程方式执行它。我猜一定有人在博客上提到过这一点,但我似乎找不到一个例子来执行我的简单场景。基本上,我想以编程方式复制当您右键单击.fsx文件并选择“使用F#交互运行...”时发生的事情。
发布于 2011-04-14 03:51:45
正如评论中所要求的,您可以将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发布于 2011-04-13 08:57:01
在随意摆弄了一下命令行参数之后,我终于让它工作了。我觉得回答我自己的问题有点差劲,但希望它仍然能帮助别人。事实证明,我的困惑是命令行参数的正确使用。如果有人有比我放的更优雅或更有用的东西,我会把答案奖励给你。
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();;https://stackoverflow.com/questions/5643120
复制相似问题