2017-02-03 45 views
1

私は次のようにソフトウェア(グラフパッドプリズム)を起動することができますRから文書を開くにはどうすればよいですか?

R.

内からファイルを開くようにしたい:

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()

1つの文字列に全体のコマンドを送信します。system2()

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"""') 

引数パラメータを使用します。

# 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

関連する問題