Erlang 使用os:cmd/1更改目录

Erlang 使用os:cmd/1更改目录,erlang,Erlang,我试图使用以下命令从gen_服务器更改命令行中的目录 os:cmd("cd d:\temp"). 但是什么也没发生,返回的只是一个空列表,我仍然在同一个目录中。 有什么想法吗?cmd()运行一个子shell,您告诉它更改目录,然后子shell退出,而没有更改其父进程的环境 如果您在shell中,则希望使用cd(),或者在Erlang程序的运行时使用file:set_cwd() 如果您想运行另一个程序并使其工作目录与Erlang使用的目录不同,另一个选项是将{cd,Dir}元组传递到open_p

我试图使用以下命令从gen_服务器更改命令行中的目录

os:cmd("cd d:\temp").
但是什么也没发生,返回的只是一个空列表,我仍然在同一个目录中。 有什么想法吗?

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

如果您在shell中,则希望使用cd(),或者在Erlang程序的运行时使用file:set_cwd()


如果您想运行另一个程序并使其工作目录与Erlang使用的目录不同,另一个选项是将{cd,Dir}元组传递到open_port()。

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

您在D驱动器上吗?请尝试“cd/d:\temp”抱歉,您能解释一下“您想要cd()而不是”的意思吗?我的意思是,在erl shell中,您可以这样说:cd(“d:/temp”)。(注意前斜杠。避免了像Erlang字符串中所要求的那样将反斜杠加倍。)谢谢,我在搜索cd()shell命令的替代方法时错过了这一点。我已经编辑了上面的帖子,把它包括在内+1我在你发布前几秒钟就试过了,效果很好。杰出的我正要放弃睡觉。现在我可以快乐地睡觉了。