我似乎找不到办法做到这一点。基本上我想用伪代码做这个:
MainScript.fsx:
printfn“启动外部脚本”
启动Script1.fsx
printfn“已完成”
Script1.fsx:
printfn“我是Script1正在运行”
因此输出窗口应该显示(在运行MainScript.fsx之后):
“启动外部脚本”
“我是Script1正在运行”
“完成”
基本上,启动Script1.fsx是我不知道如何实现的方法。
提前致谢,
鲍勃
答案 0 :(得分:2)
您可以使用ProcessStartInfo
开始新流程。您需要提供fsi.exe的路径,并使用您的fsx文件作为参数。您需要将UseShellExecute
设置为false才能将结果保存在交互式shell中。
例如:
let exec fsi script =
let psi = new System.Diagnostics.ProcessStartInfo(fsi)
psi.Arguments <- script
psi.UseShellExecute <- false
let p = System.Diagnostics.Process.Start(psi)
p.WaitForExit()
p.ExitCode
exec @"c:\Program Files\Microsoft F#\v4.0\Fsi.exe" "foo.fsx"