Выполнить аргументы командной строки wincsp изнутри R - PullRequest
0 голосов
/ 28 сентября 2018

У меня есть некоторый пакетный код командной строки, который я могу запустить в командной строке Windows просто отлично.Я в основном отправляю текстовый файл локального файла на удаленный сервер, используя аргументы командной строки WinSCP - https://winscp.net/eng/docs/commandline. Это команды, которые я использую, чтобы:

открыть командную строку winscp:

winscp

затем открыть соединение с моим сервером через ssh:

open sftp://myUserName:myPassword@theRemoteServer.net

загрузить файл на удаленный сервер:

put directoryMyLocalFileIsIn\fileToUpload.csv /locationOnRemoteServer/whatToNameFileOnRemoteServer.csv

затем закрыть соединение:

close

Все это прекрасно работает.Но я хочу запустить все это из RStudio .. Моя проблема - после запуска:

shell.exec("winscp")

Я вижу, что оболочка winscp открыта.Но когда я пытаюсь запустить следующие команды:

shell.exec("open sftp://myUserName:myPassword@theRemoteServer.net")

Он просто не запускается в открывшейся оболочке winscp. Я также использовал все виды комбинаций команд R, таких как shell, system2и shell.

Опять же, я могу успешно открыть оболочку winscp изнутри R. Но я не могу понять, как затем запускать команды в этой оболочке.Кто-нибудь знает, как это сделать?

Спасибо.

1 Ответ

0 голосов
/ 28 сентября 2018

Вам необходимо вызвать WinSCP и указать все команды, используя один вызов из R. Лучший способ сделать это - сохранить ваши команды WinSCP в одном текстовом файле, например, myscript.txt:

open sftp://myUserName:myPassword@theRemoteServer.net
put directoryMyLocalFileIsIn\fileToUpload.csv /locationOnRemoteServer/whatToNameFileOnRemoteServer
exit

Затем из командной строки вы можете вызвать WinSCP следующим образом (см. документацию WinSCP ):

winscp.com /script=myscript.txt

(вам может потребоваться указать точный путь для WinSCP и myscript.txt)

Наконец, чтобы выполнить это из R, используйте команду system2 следующим образом:

system2(
  "winscp.com",
  args = c("/script=myscript.txt"))

Опять же, вам может понадобиться указать пути к winscp.com и myscript.txt.

...