2017-12-21 6 views
0

Ich versuche, einfache externe Anwendung von R mit Shell-Befehl auszuführen.Shell-Befehl in r funktioniert nicht mit Leerzeichen im Verzeichnisnamen

Wenn ich Teil in Klammern von der Befehlszeile ausführen, funktioniert es perfekt. Aber wenn ich es über Rs Shell-Befehl ausführen, wirft es mir einen Fehler:

'C:\Program' is not recognized as an internal or external command, operable program or batch file. 
Warning messages: 
1: running command 'C:\Windows\system32\cmd.exe /c "C:\Program Files\SomeApp\bin\Release\SomeApp.exe" "C:\Users\SomeUser\R_Scripts\RProjects\Rprojects\" "1" "yes"' had status 1 
2: In shell("\"C:\\Program Files\\SomeApp\\bin\\Release\\SomeApp.exe\" \"C:\\Users\\SomeUser\\R_Scripts\\RProjects\\Rprojects\\\" \"1\" \"yes\"") : 
'"C:\Program Files\SomeApp\bin\Release\SomeApp.exe" "C:\Users\SomeUser\R_Scripts\RProjects\Rprojects\" "1" "yes"' execution failed with error code 1 

Hat jemand anderes das gleiche Problem?

+0

Versuchen Sie, die Räume backslashing - "C: \\ Programme \ Files ...." –

+0

Nein, immer noch die gleiche Fehlermeldung. – mateskabe

+0

Ich habe keine Windows hier, also kann ich nicht testen, aber in anderen R-Funktion auf Windows (wie read.table) müssen Sie Schrägstrich (/) anstelle von Backslash (\) (UNIX-Stil) verwenden. – xraynaud

Antwort

0

Leerzeichen mit Leerzeichen sollten doppelt zitiert werden. Dies funktioniert für den Shell-Befehl von R.

shell('C:\\"Program Files"\\SomeApp\\bin\\Release\\SomeApp.exe "C:\\Users\\SomeUser\\R_Scripts\\RProjects\\Rprojects\\" "1" "yes"') 
+0

Ihre doppelten Anführungszeichen stimmen in dieser Antwort nicht richtig überein, daher bin ich überrascht, dass es funktioniert hat. Aber das Zitieren in Windows-Shells ist sehr schlecht dokumentiert, also ist "cmd.exe" vielleicht egal. Wenn Sie andere Sonderzeichen im Befehl benötigen, lesen Sie die Hilfeseite für die R-Funktion 'shQuote()'. – user2554330

+0

Ja, du hast Recht. Ich habe eine Lösung in der obigen Antwort gemacht. Es sollte jetzt gut sein. – mateskabe

Verwandte Themen