Я называю свой сценарий так:
>Driver.exe 26268 "01-01-2011" "02-01-2011"
arg 0 : c:\Services\JasperBatchService\Release\JasperBatchDriver.exe
arg 1 : 26268
Unhandled Exception: System.FormatException: String was not recognized as a valid DateTime.
at System.DateTimeParse.ParseExact(String s, String format, DateTimeFormatInfo dtfi, DateTimeStyles style)
at Program.main(String[] args) in C:\sswork\dev\fSharpServices\ops-Projects\JasperBatchDriver\Program.fs:line 65
и это соответствующий код:
let mutable argNum = 0
let cmdArgs = System.Environment.GetCommandLineArgs()
for arg in cmdArgs do
match argNum with
| 1 -> pmID <- System.Int32.Parse arg
| 2 -> startDate <- DateTime.ParseExact(arg, "D", new CultureInfo("en-US"))
| 3 -> endDate <- DateTime.ParseExact(arg, "D", new CultureInfo("en-US"))
| _ -> ()
printfn "arg %d : %s" argNum arg
argNum <- argNum + 1
Я тоже пробовал это:
for arg in cmdArgs do
match argNum with
| 1 -> pmID <- System.Int32.Parse arg
| 2 -> startDate <- DateTime.ParseExact(arg, "MM-dd-yyyy", new CultureInfo("en-US"))
| 3 -> endDate <- DateTime.ParseExact(arg, "MM-dd-yyyy", new CultureInfo("en-US"))
| _ -> ()
printfn "arg %d : %s" argNum arg
argNum <- argNum + 1
и это:
for arg in cmdArgs do
match argNum with
| 1 -> pmID <- System.Int32.Parse arg
| 2 -> startDate <- DateTime.ParseExact(arg, "MM/dd/yyyy", new CultureInfo("en-US"))
| 3 -> endDate <- DateTime.ParseExact(arg, "MM/dd/yyyy", new CultureInfo("en-US"))
| _ -> ()
printfn "arg %d : %s" argNum arg
argNum <- argNum + 1
самое близкое, что я получил, это использование:
(startDate).ToString("MM/dd/yyyy")
это однако добавило двойные кавычки к выводу ....