如何在特定目录中运行命令?

时间:2014-02-13 07:15:52

标签: haskell process

我正在使用runCommand中的System.Process,但我使用

"cd " ++ path ++ " & " ++ args

并且它不好,如果路径在Windows中的不同本地驱动器上,即使不起作用。

如何处理runCommand的当前目录更改?

2 个答案:

答案 0 :(得分:4)

来自System.Directory

setCurrentDirectory更改了主程序的工作目录。

如果在使用runCommand之前执行此操作,该命令也应该使用该目录。

答案 1 :(得分:2)

通过查看runCommand的源代码,您可以实现只是createProcess的一个薄包装,它是真正的工作。以下是createProcess documentation中的一个示例,该示例已经过编辑,以方便解决此问题。

(_, Just hout, _, _) <- createProcess (proc "/path/to/my/executable" [])
                            { cwd = Just "/path/to/working-directory"
                            , std_out = CreatePipe }