在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不是有效的命令