F # запустить скрипт из другого скрипта с помощью F # Interactive - PullRequest
1 голос
/ 13 апреля 2011

Я не могу найти способ сделать это. В основном я хочу сделать это в псевдокоде:

MainScript.fsx:

printfn "запуск внешнего скрипта"

запуск Script1.fsx

printfn "Закончено"

Script1.fsx:

printfn "Я запускаю Script1"

Таким образом, в окне вывода должно отображаться (после запуска MainScript.fsx):

«запуск внешнего скрипта»

«Я запускаю Script1»

"Закончено"

По сути, запуск Script1.fsx - это метод, который я не знаю, как реализовать.

Заранее спасибо,

Bob

1 Ответ

2 голосов
/ 13 апреля 2011

Вы можете использовать ProcessStartInfo, чтобы начать новый процесс.Вам нужно указать путь к файлу fsi.exe и использовать файл fsx в качестве аргумента.Вам нужно установить UseShellExecute в false, чтобы получить результат в интерактивной оболочке.

Например:

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"
...