公開日: 09/19/2023

JMPからの外部プログラムの実行

Run Program()は標準入力と標準出力を使用するプログラムを制御します。コマンドラインから実行できるプログラムは、stdin(標準入力)からコマンドを読み取り、stdout(標準出力)に出力を書き込みます。Windowsのコマンドプロンプトcmd.exeは、その一例です。Windowsのメモ帳などのGUIプログラムを起動することもできます。

Run Program(
	Executable( "cmd.exe" ),
	Options( {"/c", "TaskList\!n"} ),
	Read Function( "text" ) // すべてのテキストを戻す
);

上記のスクリプトは、Windowsのプロセス一覧のリストをログに書き込みます。

図8.3 ログ出力 

ログ出力

また、cmd.exeを使用せずにプロセス一覧を直接出力させ、データテーブルに読み込むこともできます。

blob = Run Program(
	Executable( "tasklist.exe" ),
	Read Function( "blob" )
);
 
Open(
	blob,
	Columns(
		Column( "Image Name", Character, "Nominal" ),
		Column(
			"PID",
			Numeric,
			"Continuous",
			Format( "最適", 10 )
		),
		Column( "Session Name", Character, "Nominal" ),
		Column(
			"Session#",
			Numeric,
			"Continuous",
			Format( "最適", 10 )
		),
		Column( "Mem Usage", Character, "Nominal" ),
		Omitted Column( . )
	),
	Import Settings(
		Fixed Column Widths( 26, 9, 17, 12, 12, 63 ),
		Labels( 1 ),
		Column Names Start( 2 ),
		Data Starts( 4 )
	)
);

図8.4 Imported Data from Run Program() 

Imported Data from Run Program()

『スクリプト構文リファレンス』のRun Program(Executable("path/filename.exe"), Options({"/a", "/b", "..."}), Read Function(expression), Write Function(expression), Parameter(expression))を参照してください。

メモ: Run Program()を使用してGUIプログラムを起動すると、そのプログラムを終了するまでJMPには制御が戻りません。

より詳細な情報が必要な場合や、質問があるときは、JMPユーザーコミュニティで答えを見つけましょう (community.jmp.com).