如何在R中运行PowerShell命令?

Nic*_*ick 4 powershell r

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

gci -r |sort Length -desc |select fullname -f 5
Run Code Online (Sandbox Code Playgroud)

是否可以在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 
Run Code Online (Sandbox Code Playgroud)

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

Kev*_*Kev 6

您可能需要按以下方式运行它(假设PowerShell在您的路径中):

system("powershell -command \"gci -r|sort Length -desc|select fullname -f 5\"")
Run Code Online (Sandbox Code Playgroud)

或者,如果你不热衷于逃避"\"

system('powershell -command "gci -r|sort Length -desc|select fullname -f 5"')
Run Code Online (Sandbox Code Playgroud)

我还假设这就是R逸出和在字符串中嵌入引号的方式(来自我关于R中字符串处理的粗略搜索)。

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

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

有关更多信息,请参见:

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

特别是:

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

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