2016-09-08 11 views
0

から実行プロンプトでWindows 7のコマンドは、このコマンドは、私は内から同じことをやりたい実行ウィンドウがR

c:/Program Files (x86)/IEUBKwin1_1 Build11/IEUBKwin32.exe k:/Project/EPA.Pb.IEUBK/batch.io/input/test2.dat 

「test2.dat」オプションの入力ファイルと.exeファイルを起動することに成功しましたRでR.

、このコマンドは、同じ.EXE

shell.exec("c:/Program Files (x86)/IEUBKwin1_1 Build11/IEUBKwin32.exe") 

を立ち上げることに成功した。しかし、私は、オプションの入力ファイルと.exeファイルを起動しますR内の溶液を見つけることができませんしてきました。私はshell()shell.exec()system()を見てきましたが、オプションの入力ファイルを.exeに渡す権利を見つけることができませんでした。

どのような考えですか?

+1

バッチファイルではなくRにタグ付けしてください。バッチファイルを作成していません。 –

答えて

0

shell.exec()は、お使いのOSに関連付けられているファイルを開くために使用されます。

の場合は、シェルコマンドを使用することをお勧めしますが、ファイル名にスペースを入れてクォーテーションマークをマスクする必要があります。

てみてください:C:\Program Files (x86)\...のようにスペースを含むコマンド-promt通常cmd.exe

shell("\"c:/Program Files (x86)/IEUBKwin1_1 Build11/IEUBKwin32.exe\" k:/Project/EPA.Pb.IEUBK/batch.io/input/test2.dat") 
1

タイピング動作しません:二重引用符と同じコマンドで

The Command "C:\Program" could not be found. 

タイピング作業を行います。例えば:

"C:\Program Files (x86)\7-Zip\7z" -a ... 

それはRで動作するように取得するには、コマンド自体のR列と二重引用符(")をマークするために、単一引用符(')を使用することができます。実際には、3つの異なる引用符を使用する可能性があります(backtickは3番目の`see here for more informationです)。または、@ Frankの答えに記載されているエスケープを使用します。また

system('"C:/Program Files (x86)/IEUBKwin1_1 Build11/IEUBKwin32.exe" k:/Project/EPA.Pb.IEUBK/batch.io/input/test2.dat') 

?systemちょうど代替としてウィンドウ内のshellsystem2を使用しないように言及:

...これは、リダイレクトや配管がsystem(リダイレクトで動作することを想定することができないことを意味場合によってはWindowsセキュリティパッチの適用後に動作を停止するケースがあります)、Windowsではsystem2(またはshell)を使用する必要があります。

私の場合systemは、配管やリダイレクトを使用しないでも問題なく動作します。

関連する問題