例如,此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()
吗?
答案 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),