2013-06-14 33 views
5

Làm cách nào tôi có thể nhận được đối số dòng lệnh trong chương trình biên dịch F #? Có thể nếu tôi không sử dụng mẫu mặc định vớiĐối số dòng lệnh trong chương trình F #?

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

Tôi đã thử

let args = Sys.argv

let args = fsi.CommandLineArgs

nhưng nó không làm việc cho tôi :-(

+2

Tại sao bạn không muốn sử dụng các mảng args trao cho chức năng chính của bạn? –

Trả lời

9

Nếu bạn không dám Để sử dụng mảng args được chuyển đến hàm chính của bạn, bạn có thể sử dụng System.Environment.GetCommandLineArgs() để thay thế. Lưu ý điều này sẽ bao gồm tên của chương trình đang chạy như mục đầu tiên, không giống như mảng args được đưa ra cho chức năng chính của bạn.

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"|] 
Các vấn đề liên quan