2017-06-28 41 views
4

最近我一直在使用os:cmd在本地計算機上運行命令。當我使用os:cmd時。我不僅獲得了我所說的命令的輸出,而且得到的字符串和輸出在我的輸出/字符串示例中生成或「插入」了空格和轉義序列:如何使用erlang os:cmd()去除特殊字符/轉義序列?

os:cmd(「WMIC BIOS GET SERIALNUMBER」)。

產地:

「的SerialNumber \ r \ r \ nCN9B4R1 \ r \ r \ n \ r \ r \ n」 個

我試圖尋找Erlang的文檔,但沒有在IO LIB伸出在我身邊或響鐘。

謝謝你們這麼多!

回答

5

你得到的是命令的完整輸出。 os:cmd/1不包括任何東西。您必須像處理其他語言一樣處理輸出並移除不需要的字符,因爲您得到的正是命令產生的內容。使用io_lib,string,listsre模塊來解析輸出。例如使用string:tokens\2您可以檢查並獲取序列號,如

Output = os:cmd("WMIC BIOS GET SERIALNUMBER"), 
["SerialNumber", SerialNumber] = string:tokens(Output, " \r\n"). 
+0

非常感謝!這工作! – JonesCity