我想在R中打开一个文件。
我可以使用以下命令启动软件(graphpad prism):
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,但是对于启动软件,请勿使用它打开文档。
答案 0 :(得分: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 :(得分:1)
shell.exec("C:/Program Files (x86)/GraphPad/Prism 7/prism.exe")
它对你有用吗?
PS。和shell.exec("MyWorkbook.xls")
使用默认程序打开文件