Execute Program
概要
この演算子は、基礎となるオペレーティングシステムのシェルでコマンドを実行するだけです。任意のシステムコマンドまたは外部プログラムを実行できます。
詳細
このオペレーターは、システムコマンドを実行します。コマンドとそのすべての引数は、 commandパラメーターで指定されます。コマンドはシステムに依存することに注意してください。 log stdoutパラメーターを有効にすると、プロセスの標準出力ストリームをログファイルにリダイレクトできます。 log stderrパラメーターを有効にすることにより、プロセスの標準エラーストリームをログファイルにリダイレクトできます。
Windows / MS DOSでは、単純なコマンドの前に「cmd / c」コールを付けてください(例:「cmd / c notepad」)。 コマンドパラメータに「メモ帳」と書くだけでも、シェルコマンドだけでなくプログラムを実行している場合にも機能します。その後、Windowsは新しいシェルを開き、コマンドを実行して、シェルを再び閉じます。ただし、Windows 7は新しいシェルを開かず、コマンドを実行するだけです。別のオプションは、コマンドの前にシェルを開き、開いたままにする「cmd / c start」を使用することです。ユーザーがシェルを閉じるまで、残りのプロセスは実行されません。詳細については、添付のプロセス例をご覧ください。
注意:Windows / MS DOSのJavaバグにより、オペレーターは第1レベルの子プロセスのみを停止できます。例:前の ‘cmd / c’を含むコマンドで開始されたオペレーターを停止すると、直接の子プロセス(シェル)のみが閉じられますが、これらのシェルによって開始されたプロセスはRapidMinerから切り離されたまま実行されます。
Java ProcessBuilderは、コマンドのビルドと実行に使用されます。シェル上で特別な意味を持つ文字(パイプ記号、ブラケット、ブレースなど)は、Javaにとって特別な意味を持ちません。このJavaメソッドは、実行前に文字列をトークンに解析することに注意してください。これらのトークンはシェルによって解釈されません。目的のコマンドにパイピング、リダイレクト、またはその他のシェル機能が含まれる場合、これを処理する小さなシェルスクリプトを作成することをお勧めします。
入力
- in (ファイル)このポートに送信されたファイルオブジェクトは、プロセスの標準入力(stdin)にパイプされます。
- スルー (IOObject)このポートにオブジェクトを接続することは必須ではありません。このポートで接続されたオブジェクトは、出力ポートを変更せずに配信されます。この演算子は複数の入力を持つことができます。ある入力が接続されると、別の入力(ある場合)を受け入れる準備ができている別の入力ポートを介して使用可能になります。入力の順序は同じままです。プログラム実行オペレーターの最初の入力ポートで提供されたオブジェクトは、最初の出力ポートで使用可能です。
出力
- out(ファイル)接続されている場合、このプロセスによって生成された標準出力ストリーム(stdout)はファイルオブジェクトとして配信されます。
- err(ファイル)接続されている場合、このプロセスによって生成された標準エラーストリーム(stderr)はファイルオブジェクトとして配信されます。
- スルー(IOObject)入力として与えられたオブジェクトは、このポートを介して出力に変更されることなく渡されます。このポートを他のポートに接続することは必須ではありません。このポートが接続されていない場合でもコマンドは実行されます。プログラム実行オペレーターは、複数の出力を持つことができます。 1つの出力が接続されると、出力ポートを介して別の出力が使用可能になり、別の出力(ある場合)を配信する準備が整います。出力の順序は同じままです。プログラム実行オペレーターの最初の入力ポートで配信されたオブジェクトは、最初の出力ポートで配信されます
パラメーター
- commandこのパラメーターは、実行するコマンドを指定します。 範囲:文字列
- log_stdout trueに設定すると、コマンドのstdoutストリーム(標準出力ストリーム)がログファイルにリダイレクトされます。 出力ポートが接続されていない場合にのみ使用できます。 範囲:ブール
- log_stderr trueに設定すると、コマンドのstderrストリーム(標準エラーストリーム)がログファイルにリダイレクトされます。 エラーポートが接続されていない場合にのみ使用できます。 範囲:ブール
- working_directoryコマンドの作業ディレクトリを定義します。作業ディレクトリが定義されていない場合、現在のRapidMinerプロセスの作業ディレクトリが使用されます。 範囲:文字列
- env_variables指定されたコマンドの環境変数を設定できます。環境変数が複数回定義されている場合、最後に定義された変数が使用されます。 範囲:リスト
チュートリアルプロセス
プログラム実行オペレーターの紹介
このプロセス例では、Windows 7のシェルでプログラムの実行演算子を使用してコマンドを実行します。2つのプログラムの実行演算子を使用します。最初のプログラム実行オペレータのコマンドパラメータは「cmd / c java -version」に設定されます。 2番目のプログラム実行オペレータのコマンドパラメータは「cmd / c notepad」に設定されます。プロセスが実行されると、最初にログウィンドウにJavaバージョンが記述されます。次に、メモ帳が開きます。プロセスは、メモ帳が閉じるのを待ちます。ユーザーがメモ帳を閉じると、プロセスが続行します。コマンドパラメータを「メモ帳」に設定するだけでもここで機能することに注意してください。
プログラムの実行オペレータによってInternet Explorerを開く
このプロセス例では、Windows 7のシェルコマンドを使用して、プログラムの実行演算子を使用してInternet Explorerブラウザーを開きます。プログラムの実行演算子のコマンドパラメーターは、 ‘cmd / c start C:\ “Program Files” \ “Internet Explorerに設定されます”\” iexplore.exe “‘。プロセスが実行されると、Internet Explorerブラウザーが開きます。このプロセスは、Internet Explorerブラウザーがユーザーによって閉じられるのを待ちます。 Internet Explorerブラウザーが閉じられると、プロセスが進行します。
シェルコマンドによるデータのパイプ
このプロセスは、実行されたコマンドとの間でデータをストリーミングする方法を示しています。特に、Irisデータセットを開き、CSVファイルとしてインメモリファイルオブジェクトに書き込みます。次に、このバッファは「ソート」コマンドを実行するプログラム実行オペレータに渡されます。これにより、入力が並べ替えられ、> outポートで返されます。別のCSV読み取り演算子は、ソートされた出力を解析します。