使用rawSystem使用cmd.exe; Arg在“/ c”之前有引号引起错误

时间:2013-03-06 23:14:18

标签: windows haskell cmd

在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解决方案来解决这个问题,所以:

为什么会这样?

更重要的是,我该怎么做才能避免这个问题?

1 个答案:

答案 0 :(得分:1)

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

cmd.exe“/ c dir”

如果您使用

cmd.exe "/c" "dir"

它将被解释为

/c" "dir

其中“dir无效命令