2013-06-14 15 views
5

Wie kann ich Befehlszeilenargumente in F # kompilierten Programm bekommen? Ist es möglich, wenn ich Standard-Vorlage nicht verwenden mitBefehlszeilenargumente in F # -Programm?

[<EntryPoint>] 
let Main(args) = ... 

Ich habe versucht,

let args = Sys.argv

und

let args = fsi.CommandLineArgs

, aber es funktioniert nicht für mich :-(

+2

Warum Sie nicht möchten, das args-Array auf Ihre Hauptfunktion gegeben benutzen? –

Antwort

9

Wenn Sie nicht wan Um das args-Array zu verwenden, das an Ihre Hauptfunktion übergeben wurde, können Sie stattdessen System.Environment.GetCommandLineArgs() verwenden. Beachten Sie, dass dies den Namen des Programms enthält, das als erstes Element ausgeführt wird, im Gegensatz zum args-Array, das Ihrer Hauptfunktion zugewiesen ist.

open System 

[<EntryPoint>] 
let main(args) =  
    printfn "args: %A" args 
    printfn "env.cmdline: %A" <| Environment.GetCommandLineArgs()  
    0 

Run as args.exe 1 2 3 4:

args: [|"1"; "2"; "3"; "4"|] 
env.cmdline: [|"args.exe"; "1"; "2"; "3"; "4"|]