【问题标题】:Execute wincsp command line arguments from within R从 R 中执行 wincsp 命令行参数
【发布时间】:2019-03-04 11:56:45
【问题描述】:

我有一些命令行批处理代码,可以在我的 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 已打开。但是当我尝试运行如下命令时:

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

它只是没有在打开的 winscp shell 中运行。我还使用了各种 R 命令的组合,如 shell、system2 和 shell。

同样,我可以在 R 中成功打开 winscp shell。但我不知道如何在该 shell 中运行命令。有人知道怎么做吗?

谢谢。

【问题讨论】:

  • 如果您使用的是最新的 Windows 10 版本,请注意它已安装 ssh 和 scp。不再需要使用 putty 和 WinSCP。
  • ssh 和 scp 安装了什么...... windows 10 命令行?
  • 我认为 Hong 指的是在 Windows 上运行 Linux:howtogeek.com/249966/…
  • FWIW 有一个用于 R 的 ssh package,其中包括来自 R 的 scp 功能。

标签: r command-line winscp


【解决方案1】:

您需要调用 WinSCP 并使用来自 R 的单个调用指定所有命令。最好的方法是将 WinSCP 命令保存在单个文本文件中,例如myscript.txt:

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

然后,您可以从命令行调用 WinSCP,如下所示(参见WinSCP documentation):

winscp.com /script=myscript.txt

(您可能需要指定 WinSCP 和 myscript.txt 的确切路径)

最后,要从 R 中完成此操作,请使用 system2 命令,如下所示:

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

同样,您可能需要指定winscp.commyscript.txt 的路径。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-15
    • 1970-01-01
    • 1970-01-01
    • 2012-11-06
    • 1970-01-01
    • 2018-01-30
    • 2011-05-05
    • 2012-07-15
    相关资源
    最近更新 更多