移動先: 概要 戻り値 関連項目. MEL 例.

概要

system string

system は 「元に戻す」が不可能「照会」が不可能「編集」が不可能 です。

文字列引数は、シェルで実行するコマンドです。 実行したコマンドの出力が文字列として返されます。

system コマンドはシステムに依存するため、Windows と UNIX では結果が異なることに注意してください。

注記:

Linux のバックグラウンドでコマンドを実行するには、その出力をリダイレクトする必要があります。例:


必要に応じて、出力を /dev/null 以外のところに送れます。

Windows においてバックグラウンドでコマンドを実行する場合は、"start"、"shell"、"load" コマンドのいずれかを使用してください。"start" と "shell" の唯一の違いは "shell" はコマンド プロセッサを使用するので、ビルトイン コマンド(DIR、COPY など)が使用できるという点です。
例:


"load" は Windows で使用可能なもう 1 つのキーワードです。"load" キーワードに続けてファイル名を与えると、Windows はそのファイル タイプのデフォルト アプリケーションを検索します。次に、検索されたアプリケーションが、バックグラウンド タスクとしてそのファイルを開きます。

"start" コマンドを使用すると、Windows ではコマンド処理ウィンドウがポップ アップで表示され、システムを呼び出す MEL 関数はこの処理が完了するまで待機してから継続します。このポップ アップ ウィンドウを非表示にしようとするときに、"shell" コマンドを使わないほうがよい場合があります。

"shell" コマンドを使用すると、コマンド ウィンドウが非表示になり、処理はバックグラウンドで実行されますが、"システム" を呼び出した MEL 関数は引き続き実行され、この処理が完了するまで待機しません。 これによって、system 関数が完了してから呼び出し側の MEL スクリプトで処理を継続すると想定している場合に、問題が発生する可能性があります。

解決するには、"start" や "shell" 追加コマンドを使用せずにシステムをコールします。
例:


これは処理をサイレントに実行するので、ポップ アップ ウィンドウは表示されません。また、この処理はフォアグラウンドで実行されるので、呼び出し側の MEL スクリプトは処理が完了するまで待機してから継続します。

戻り値

string実行結果

関連項目

exec, pclose, popen

MEL 例

// On Linux
//
system("/usr/bin/date");
// Result: Tue Nov 23 18:12:39 EST 1999
//

// On Windows
//
system("start C:/WINNT/NOTEPAD.EXE" );

$directoryListing = system("DIR");

// Make a sample file to use as a test example
//
$exampleFileName = ( `internalVar -userTmpDir` + "example.txt" );
$fileId=`fopen $exampleFileName "w"`;
fprint $fileId "Hello there\n";
fclose $fileId;

// Use the "load" keyword to open the file with the default app.
// (Windows only)
//
system("load " + $exampleFileName );