我正在研究需要在cmd中執行某些命令的Erlang腳本。我試圖通過這種方式解決問題,但我什麼也得不到。在cmd中更改目錄並執行外部命令 - ERLANG
start() ->
comparing(0000).
comparing(Num) ->
file:set_cwd("F:\Documents\UPI\dump_rabbitmq\rabbitmq-dump-queue-v0.3-windows-amd64"),
DirOut = os:cmd("dir"),
io:format("DirOut=~p~n", [DirOut]),
os:cmd('rabbitmq-dump-queue -uri="amqp://username:[email protected]:5672/" -queue=try -full -max-messages=5 -output-dir=E:\Programs\Erlang\erl8.3\usr'),
NumMes = Num,
io:format("NumMes=~p~n", [NumMes]),
NameF = "msg-000",
io:format("NameF=~p~n", [NameF]),
FileName = concat(NameF, lists:flatten(io_lib:format("~p", [NumMes]))),
io:format("FileName=~p~n", [FileName]),
File = filelib:is_regular(FileName),
io:format("File=~p~n", [File]),
...
這只是代碼的一部分,我有一個問題。在行file:set_cwd("F:\Documents\UPI\dump_rabbitmq\rabbitmq-dump-queue-v0.3-windows-amd64")
我想改變目錄。 在這兩條線我檢查,如果目錄被改爲:
DirOut = os:cmd("dir"),
io:format("DirOut=~p~n", [DirOut])
並且符合os:cmd('rabbitmq-dump-queue -uri="amqp://username:[email protected]:5672/" -queue=try -full -max-messages=5 -output-dir=E:\Programs\Erlang\erl8.3\usr')
我想在cmd中執行命令從RabbitMQ的服務器轉儲信息。我試圖改變目錄os:cmd("cd F:\Documents\UPI\dump_rabbitmq\rabbitmq-dump-queue-v0.3-windows-amd64")
,但沒有任何事情發生。任何建議如何解決這個問題?
編輯
問題就解決了。在這一行中有兩個斜槓是必要的:file:set_cwd("F:\\Documents\\UPI\\dump_rabbitmq\\rabbitmq-dump-queue-v0.3-windows-amd64")
Dogbert在評論中解決了這個問題。
嘗試'file:set_cwd(「F:\ ...」)'而不是'os:cmd(「cd F:\ ...」)''。 – Dogbert
我嘗試了'file:set_cwd(「F:\ Documents \ UPI \ dump_rabbitmq \ rabbitmq-dump-queue-v0.3-windows-amd64」)行,但沒有任何事情發生。還有'os:cmd(「cd F:\ ...」)',但還是什麼都沒有。 –
將'os:cmd(「cd ...」)更改爲'file:set_cwd(「...」)'時,'os:cmd(「dir」)'的輸出不會改變嗎? – Dogbert