2017-02-03 110 views
1

我想从内R.如何从R打开文档?

我可以启动软件(GraphPad棱镜)具有以下打开文件:

system2("C:/Program Files (x86)/GraphPad/Prism 7/prism.exe") 

我预计在打开我的棱镜文件,好像我是双击上或从CMD运行它,但它没有:

system2("H:/Graphs/Shell/Templates/NASH4_Standard.pzfx") 

我收到的消息:

警告消息:正在运行的命令 “H:/Graphs/Shell/Templates/NASH4_Standard.pzfx”有状态127

我看,这是不是一个错误,但只是一个警告。我是否无意中在背景中“炮轰”文档?我如何确保它弹出窗口?

状态127是写给here,但对于启动软件,而不是用它打开文档。

+1

是'用'prism.exe'应用程序相关联.pzfx'文件默认?如果不是,则可能需要将'.pzfx'文件作为参数传递给第一个命令。 – nrussell

+0

当我双击一个'.pzfx'文件时,它会用'prism.exe'启动。如果我将'H:/Graphs/Shell/Templates/NASH4_Standard.pzfx“复制到cmd,则相同。这是否意味着它是相关的? – naco

+1

可能; 'edit(file =“path/to/file.pzfx”,editor =“path/to/prism.exe”)'为你工作吗? – nrussell

回答

3

在Windows环境中打开文件,你需要调用一个命令行解释像CMD提示符或PowerShell的。此外,任何具有空格的文件路径都需要用R中的字符串文本(您的.exe文件不是特定文件)所需的引号之上的双引号引起来。

随着system()在一个字符串发送整个命令:

system('cmd /c "H:/Graphs/Shell/Templates/NASH4_Standard.pzfx"') 

# POWER SHELL REQUIRES MORE QUOTE ESCAPING (ONLY ONE PAIR W/O SPACES) 
system('powershell & """H:/Graphs/Shell/Templates/NASH4_Standard.pzfx"""') 

随着system2()使用ARGS参数:

# FILES 
system2('cmd', args=c('/c', '"H:/Graphs/Shell/Templates/NASH4_Standard.pzfx"')) 
system2('powershell', args=c(' & """H:/Graphs/Shell/Templates/NASH4_Standard.pzfx"""')) 

# EXECUTABLES 
system2('cmd', args=c('/c', '"C:/Program Files (x86)/GraphPad/Prism 7/prism.exe"')) 
system2('powershell', args=c(' & """C:/Program Files (x86)/GraphPad/Prism 7/prism.exe"""')) 
1

shell.exec("C:/Program Files (x86)/GraphPad/Prism 7/prism.exe")

它为你工作?

ps。和shell.exec("MyWorkbook.xls")默认程序

+1

这也适用 – naco