Use ProcessMonitor to determine exact arguments and working directory of R started. When you get these values - you can setup your debugger with same settings.
Команда интеграции оболочки Windows не работает, возможна ошибка синтаксиса
Я хочу создать расширение оболочки для запуска блестящих приложений в локальном процессе на 64-битной Windows 7 Professional. Мне нужна команда, R -e "shiny::runApp('~/shinyapp')"
как определено на блестящей учебной веб-странице . Я обычно создаю каталог, который называется shiny
в каждой папке с данными. Таким образом, предполагаемая команда должна быть всегда такой:R -e "shiny::runApp('%1'/shiny) for me."
Поэтому я создал ключ с именем "Shine!" и подключ с именем "command" в HKEY_CLASSES_ROOT \ Directory \ shell со значением. C:\Program Files\R\R-2.15.1\bin\x64\R.exe -e "shiny::runApp('%1/shiny')"
Структура dir в regedit выглядит следующим образом:
Теперь, когда я щелкаю правой кнопкой мыши папку данных (содержащую блестящую папку) и нажимаю «Shine!», Консоль R (консоль cmd) открывается и закрывается, но приложение не работает (приложения тщательно проверены и работают, Я также проверил команду regedit в cmd).
Если честно, я не знаю C, оболочку Windows или что-то в этом роде. Я проверил несколько вопросов, ссылок и документов, но предпочел найти простое решение без проверки ошибок (отсутствующая папка и т. Д.).
Я думаю, что здесь отсутствует синтаксическая ошибка, поэтому я попробовал несколько версий, таких как только '%1'
и щелчок правой кнопкой мыши на блестящей папке, также версии, подобные '/'%1/'/shiny'
и т.д. Что не так и что более важно, как я могу отладить щелчок правой кнопкой мыши с% 1 вещь, в то время как окно cmd закрывается так же быстро, как ад?
2 ответа на вопрос
% 1 расширяется оболочкой Windows до имени папки, по которой вы щелкнули правой кнопкой мыши.
Итак, если команда, которую вы хотите выполнить:
"C:\Program Files\R\R-2.15.1\bin\x64\R.exe" -e "shiny::runApp('%1/shiny')"
Вы можете заменить его вызовом cmd.exe, который остается открытым после выполнения и сохраняет двойные кавычки (удваивая их внутри дополнительной пары двойных кавычек), так что вы можете проверить вывод команды r.exe:
cmd /k " ""C:\Program Files\R\R-2.15.1\bin\x64\R.exe"" -e ""shiny::runApp('%1/shiny')"" "
У меня нет опыта работы с R, но я предполагаю, что команда runApp плохо работает с обратными слешами в пути Windows или содержит пробел, и я также предполагаю, что «~» работает с текущим каталогом, как это не делает Windows. у меня нет реального каталога $ HOME.
Решение для этого состоит в том, чтобы связать команду CD и вызов R.exe через cmd.exe:
cmd /c " cd /d ""%~1"" & ""C:\Program Files\R\R-2.15.1\bin\x64\R.exe"" -e ""shiny::runApp('~/shiny')"" "
(cmd / c закрывает новое окно, cmd / k сохраняет его открытым после выполнения, поэтому последний пример закрывает окно после запуска R.exe).
Похожие вопросы
-
12
Почему папка / winsxs становится такой большой и ее можно уменьшить?
-
2
Повышенные привилегии для запуска приложений в Windows?
-
14
PDF Viewer в Windows
-
-
7
Какие службы Windows можно безопасно отключить?
-
8
Firefox PDF плагин для просмотра PDF в браузере на Windows
-
1
Windows теряет макет экрана
-
1
Есть ли способ предотвратить установку / обновление, чтобы засорять мой жесткий диск загадочными пап...
-
1
Как я могу получить доступ к принтеру Windows Vista из Ubuntu по сети?
-
6
Просмотр журнала в Windows
-
3
Фоновая проблема Windows с двумя экранами