ジャンプ先: 概要. 戻り値. 関連. 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 );