2009-09-03 54 views
4

我試圖改變使用更改目錄:在cmd/1

os:cmd("cd d:\temp"). 

但沒有happense在從gen_server命令行的目錄,返回是一個空的列表,我仍然在同目錄。 有什麼想法?

+0

你在D驅動器?嘗試使用「cd/dd:\ temp」 – Alan 2009-09-03 23:53:07

回答

7

嘗試使用file:set_cwd(Dir)更改當前的目錄。

+0

謝謝,我錯過了在尋找cd()shell命令的替代方法時的錯誤。我已經編輯了我的帖子以包含它。 +1 – 2009-09-04 00:25:08

+0

我剛剛在發佈之前試過了那麼幾秒,它工作正常。優秀。我正要放棄並去睡覺。現在我可以快樂地睡覺了。 – Damian 2009-09-04 00:28:25

5

cmd()運行一個子shell,你告訴它改變目錄,然後子shell退出,並沒有改變其父進程的環境。

如果您在shell中,或者在運行時在Erlang程序中使用file:set_cwd(),則希望使用cd()。

另一個選擇是,如果你想運行另一個程序並且工作目錄與Erlang使用的不同,那麼就是將{cd,Dir}元組傳遞給open_port()。

+0

對不起,你能解釋一下你的意思嗎?「你想要cd()而不是」 – Damian 2009-09-04 00:05:21

+0

我的意思是,在erl shell中,你可以這樣說:cd(「d​​:/ temp」) 。 (請注意正斜槓,避免需要將Erlang字符串中所需的反斜槓加倍。) – 2009-09-04 00:25:40