使用rawSystem与cmd.exe; Arg“/ c”后面带有前导引号,导致错误

在Haskell中,运行rawSystem "cmd.exe" ["/c", "dir"]会生成cmd的无法识别的命令消息,如下所示:

 Prelude System.Cmd> rawSystem "cmd.exe" ["/c", "dir"] '"dir' is not recognized as an internal or external command, operable program or batch file. ExitFailure 1 

如错误信息所示,问题是我的第二个参数前面加了一个引号( " ),这个参数也是["/c", ""]作为参数;它表示'"' not recognized

我猜这是cmd的错,比Haskell的更多,但是我需要一个Haskell解决scheme来处理这个问题,所以:

为什么会这样呢?

而更重要的是,我能做些什么来避免这个问题呢?

CMD在一个参数中需要“/ C dir”

cmd.exe“/ c dir”

如果你使用

 cmd.exe "/c" "dir" 

这将被解释为

 /c" "dir 

“dir不是有效的命令