2017-04-01 268 views
0

我想使用system()命令從RStudio訪問命令行(cmd)。但是,當我將我的命令放在R腳本中時,會顯示一個錯誤,並指示R不接受語法。該命令是:使用system()命令從RStudio訪問命令行(cmd)

system("C:\Program Files\ANSYS Inc\v150\ANSYS\bin\winx64\ansys150.exe" -p ane3fl -dir "C:\Users\hamdani\Documents" -j "hamid" -s read -l en-us -b -i "C:\Users\hamdani\Documents\Plane Stress Bracket.txt" -o "C:\Users\hamdani\Documents\fichier.out") 

的錯誤是:

Error: '\P' is an unrecognized escape in character string starting "'"C:\P" 

當我直接放在命令,在系統命令,它工作得很好:

"C:\Users\hamdani\Documents" -j "hamid" -s read -l en-us -b -i "C:\Users\hamdani\Documents\Plane Stress Bracket.txt" -o "C:\Users\hamdani\Documents\fichier.out" 
+1

只有關於R代碼的問題在這裏脫離主題。這可能是好的,如果你等,我們可以嘗試在那裏遷移它。 – gung

+0

請仔細閱讀'幫助(系統)'。 _entire命令必須是一個string_,並且您可以通過保護參數來避免參數。 –

回答

0

的問題是這樣的您必須爲R輸入字符串。您的命令包含可執行文件和文件的路徑,因此命令的一部分爲:

system("C:\Program Files\ANSYS Inc\v150\ANSYS\bin\winx64\ansys150.exe" ... 

但是R使用反斜槓\來表示轉義序列,專門使用字符(如\n)來表示換行符。由於\表示轉義序列即將開始,所以如果您想要反斜線字符,則必須轉義轉義,即在字符串中獲取單個反斜線字符的方法是鍵入\\。你的命令包含許多反斜槓。你需要將所有這些都加倍以獲得這種類型的錯誤。