StartProcess["executable"]
外部プログラムを実行し,結果のサブプロセスを表すProcessObjectを返す.
StartProcess[{"executable",arg1,arg2,…}]
外部プロセスを実行し,これに指定された引数 argiを渡す.
StartProcess
StartProcess["executable"]
外部プログラムを実行し,結果のサブプロセスを表すProcessObjectを返す.
StartProcess[{"executable",arg1,arg2,…}]
外部プロセスを実行し,これに指定された引数 argiを渡す.
詳細とオプション
- StartProcessは,指定したプロセスが開始できる場合はProcessObjectを返す.それ以外の場合は$Failedを返す.
- StartProcessを使って,実行中のプロセスとインタラクトすることができる.Wolfram Engineをブロックせずに「バックグラウンドタスク」を実行することもできる.
- StartProcessは即座に戻り,開始されたプロセスが完了するのは待たない.プロセスの終了を待つのであればRunProcessを使うとよい.
- StartProcess[{"executable",arg1,arg2,…}]では,argiはToStringを使って文字列に変換される.
- Wolfram EngineはProcessObjectで表されるサブプロセスと,WriteLine,WriteString,BinaryWrite,ReadLine,ReadString,BinaryRead等の関数を使って交信できる.
- 標準の入力と出力およびエラーストリームは,ProcessConnectionを使って表すことができる.
- サブプロセスに関する情報は,ProcessStatusおよびProcessInformationを使って求めることができる.
- 使用可能なオプション
-
ProcessDirectory Inherited 初期作業ディレクトリ ProcessEnvironment Inherited サブプロセス与える環境変数 - デフォルトで,サブプロセスはWolfram Engineからそのプロセスのディレクトリと環境変数を継承する.
- Wolfram Engineが終了されると,サブプロセスも強制終了される.
- 引数 argiのいずれかが"name"->value の形の場合は,"--name=value"の形に変換される.name が単一の文字の場合は,ダッシュは1つしか使われない.
例題
すべて開く すべて閉じる例 (1)
process = StartProcess[$SystemShell]WriteLine[process, "echo example line"];ReadString[process, EndOfBuffer]ProcessStatus[process]WriteLine[process, "exit"];ProcessStatus[process]考えられる問題 (4)
リストを使うことが,プログラムとその変数のためにStartProcessを呼び出す正しい方法である:
StartProcess[{$SystemShell, "-c", "echo example line"}]1つの文字列にコマンドと引数を入れてStartProcessを呼ぶことは許されていない:
StartProcess[StringJoin[{$SystemShell, " -c \"echo example line\""}]]同様に,プログラムの引数をStartProcessの引数としてStartProcessを呼ぶことは許されていない:
StartProcess[$SystemShell, "-c", "echo example line"]~ や * のような特殊記号は,StartProcessがシェルをスキップするので,シェル式を使っても変換されない:
StartProcess[{"diff", "~/file1", "~/file2"}]dirやechoのようなシェルコマンドは,Windowsはバイナリではないのでは直接呼び出すことができない(Unixバイナリなので,Unixシステム上では使うことができる):
StartProcess[{"echo", "this line only works on Unix systems like MacOS and Linux"}]コマンドの中には絶対パスを使って呼ばなければならないものもある:
StartProcess[{"/bin/echo", "example"}]インタラクティブな例題 (1)
Wolfram言語でインタラクティブなコンソールを作る.この例題をテストしたければ,まずセルを評価する.次に,入力ボックスに有効な任意のシェルコマンドをタイプしてGoボタンをクリックするとよい:
command = "";
process = StartProcess[$SystemShell];
Pause[.1];
processString = ReadString[process, EndOfBuffer];Column[{
Pane[Dynamic[processString], ImageSize -> {800, 400}, Scrollbars -> True, ScrollPosition -> {-1, -1}],
InputField[Dynamic[command], String],
Button["Go!", WriteLine[process, command];
Pause[.1];
processString = processString <> ReadString[process, EndOfBuffer];
]}]おもしろい例題 (1)
並列計算のために,新たなWolframKernelプロセスを開始する:
path = FileNames["WolframKernel" | "WolframKernel.exe", $InstallationDirectory, 3]process = StartProcess[path]Do[WriteLine[process, "42^42"], {5}]WriteLine[process, "Quit[]"];string = ReadString[process]ReadString[ProcessConnection[process, "StandardError"]]関連するガイド
テキスト
Wolfram Research (2014), StartProcess, Wolfram言語関数, https://reference.wolfram.com/language/ref/StartProcess.html.
CMS
Wolfram Language. 2014. "StartProcess." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/StartProcess.html.
APA
Wolfram Language. (2014). StartProcess. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/StartProcess.html
BibTeX
@misc{reference.wolfram_2026_startprocess, author="Wolfram Research", title="{StartProcess}", year="2014", howpublished="\url{https://reference.wolfram.com/language/ref/StartProcess.html}", note=[Accessed: 23-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_startprocess, organization={Wolfram Research}, title={StartProcess}, year={2014}, url={https://reference.wolfram.com/language/ref/StartProcess.html}, note=[Accessed: 23-June-2026]}