如何在R中运行PowerShell命令?

时间:2015-06-09 23:59:35

标签: r powershell

例如,此PowerShell命令返回目录中前5个最大的文件:

gci -r |sort Length -desc |select fullname -f 5

是否可以在R中运行它并将其与变量对齐?

我试过了:

system("gci -r|sort Length -desc|select fullname -f 5")
Warning message:
running command 'gci -r|sort Length -desc|select fullname -f 5' had status 127 

我不应该在这里使用system()吗?

1 个答案:

答案 0 :(得分:5)

您可能需要将其运行(假设PowerShell在您的路径中):

system("powershell -command \"gci -r|sort Length -desc|select fullname -f 5\"")

或者,如果您不希望"转移\"

system('powershell -command "gci -r|sort Length -desc|select fullname -f 5"')

我还假设R是如何逃脱并在字符串中嵌入引号(从我粗略的谷歌搜索R中的字符串处理)。

如果您希望将输出捕获到变量(特别是字符向量),则需要使用intern = TRUE参数:

res <- system('powershell -command "gci -r|sort Length -desc|select fullname -f 5"', intern=TRUE)

有关详细信息,请参阅:

  

http://stat.ethz.ch/R-manual/R-patched/library/base/html/system.html

特别是:

  

如果intern = TRUE是一个给出命令输出的字符向量,则每个字符串一行。

  

如果intern = FALSE,则返回值为错误代码(成功为0),