问题描述
|
我似乎找不到解决方法。基本上我想用伪代码做到这一点:
MainScript.fsx:
printfn \“启动外部脚本\”
启动Script1.fsx
printfn \“完成\”
Script1.fsx:
printfn \“我正在运行Script1 \”
因此,输出窗口应显示(运行MainScript.fsx之后):
\“启动外部脚本\”
\“我正在运行Script1 \”
\“完成\”
基本上,启动Script1.fsx是我不知道如何实现的方法。
提前致谢,
鲍勃
解决方法
您可以使用
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\"