2016-02-16 2 views
0

Этот вопрос связан с ответом на этот вопрос:«Непризнанный побег характер» при вызове системы()

Batch measurements of .wav files with sox stats

У меня аналогичная проблема, и был рад видеть, что выглядело как довольно солидный решение уже на stackoverflow. Однако я обнаружил, R впервые и загрузить R Command попробовать, но я получаю только сообщения об ошибке при попытке выполнить этот код в интерпретаторе R Commander:

spam = system("sox foo2.wav -n stat 2>&1", intern = TRUE)

Если добавить foo2.wav файл в папку, содержащую Сокс ошибку является:

работает команда «сокс foo2.wav -n стат 2> & 1» имел статус 2

Если я пытаюсь поставить точное местоположение файла, как это:

spam = system("sox C:\Program Files (x86)\sox-14-4-2\foo2.wav -n stat 2>&1", intern = TRUE) 

... то ошибка:

Ошибка: '\ Р' непризнанным побег в строку символов, начиная "" Сокс C: \ P»

... Я пытался удвоить цитату строк, но безрезультатно. Код spam = system("sox "C:\Program Files (x86)\sox-14-4-2\foo2.wav" -n stat 2>&1", intern = TRUE) закончилась со следующей ошибкой:

Ошибка: неожиданный символ в "спам = системы (" Сокс "C"

Я даже пробовал:

spam = system("sox file.path("C:", "Program Files (x86)", "sox-14-4-2", "foo2.wav") -n stat 2>&1", intern = TRUE) 

безрезультатно. ..

Я могу подтвердить, я сокс работать правильно с помощью командной строки Windows. может кто-нибудь помочь мне понять?

Спасибо заранее!

+0

Кажется, что окна специфические ... возможно, посмотрите ответы на этот вопрос: http://stackoverflow.com/questions/18603984/using-system-with-windows Особенно команда 'shell'. –

ответ

0

Вам нужно избежать «\». Попробуйте что-нибудь вроде «C: \ Program Files ...».

+0

Я не уверен, что понимаю ваше предложение. Не могли бы вы уточнить, пожалуйста? Я не вижу, чтобы вы избегали чего-либо, чего я не пробовал в «C: \ Program Files ...». – user3535074

+1

> spam = system ("sox C: \\ Users \\ danie \\ Desktop \\ Audio \\ foo2.wav -n stat 2> & 1", intern = TRUE) Предупреждающее сообщение: running command 'sox C: \ Users \ danie \ Desktop \ Audio \ foo2.wav -n stat 2> & 1 'имеет статус 2 – user3535074

+0

'spam = system (" sox foo2.wav -n stat 2> & 1 ", intern = TRUE)' такое же, как 'spam = system (" sox C: \\ Users \\ danie \\ Desktop \\ Audio \\ foo2.wav -n stat 2> & 1 ", intern = TRUE)', так как вы хотите, чтобы escapte "\" в строка. Что касается состояния 2, это связано с Windows. Вероятно, вы захотите использовать 'shell' вместо' system'. Надеюсь это поможет. –

Смежные вопросы