使用os:cmd/1更改目录

Dam*_*ian 4 erlang

我正在尝试使用gen_server更改命令行中的目录

os:cmd("cd d:\temp").
Run Code Online (Sandbox Code Playgroud)

但没有任何事情发生,返回只是一个空列表,我仍然在同一个目录中.有任何想法吗?

Pri*_*til 7

尝试使用file:set_cwd(Dir)来更改当前目录.


War*_*ung 5

cmd()运行一个子shell,你告诉它改变目录,然后子shell退出,没有改变它的父进程的环境.

如果你在shell中,你想使用cd(),或者在Erlang程序中运行时使用文件:set_cwd().

另一个选择,如果你想运行另一个程序并使其工作目录与Erlang使用的工作目录不同,则将{cd,Dir}元组传递给open_port().