English help on website



run文(Ver9.34対応版)
目次− run文
run文は、他のプログラムを実行します。
run "notepad.exe";
パラメータ1(文字列型)
コマンドの文字列を指定します。

結果コード
プログラムの起動に失敗するとresultがfalseになります。
プログラムの起動に成功するとresultはfalse以外になります。


パラメータとしてコマンドの文字列を指定してください。

run文はプログラムを起動したあと、マクロの次行以降をすぐに続行します。(標準入出力のリダイレクトが無ければ)
実行して待機する、runsync文, runsync2文もあります。
詳細なパラメータ指定する方法のrunex文, hidemaru.runProcessもあります。

run @"notepad.exe c:\folder\test.txt";
message "a";

run文は、"<con" や ">con" などを付けることにより標準入出力のリダイレクトが可能です。
詳細は、秀丸エディタヘルプの「プログラム実行の詳細」の項目を参照して下さい。

「<con」は、現在の秀丸の内容をShift-JISに変換してプログラムに渡します。
「>con」は、プログラムからの出力をShift-JISであると解釈して秀丸エディタに出力します。
範囲選択されている場合は範囲を置き換えます。新しい秀丸エディタで実行した場合は、その新しい秀丸エディタに出力します。何かファイルを開いている場合は、新しい秀丸エディタに出力します。
エンコードをそのまま扱いたい場合は、「<filename 」や「>filename」で直接入出力してください。
参照:ファイルのエンコードのまま実行するマクロ

run文で「>con」を指定して秀丸エディタが新しく起動する場合でも、マクロの実行が継続される秀丸は切り替わりません。
マクロを実行する秀丸エディタを切り替えて、実行結果に対して操作を行う場合は、newfile;して新しい秀丸エディタにマクロの実行を移してからrun文を実行してください。

run文に「%f」「%d」「%b」という文字を書いておくと、この文字は、それぞれ現在のファイル名やフォルダ名に置換されます。

%f    フルパスのファイル名

%d    フォルダ名

%b    フォルダを除いたファイル名

%%    % に置き換わります

%を%%に置き換える例
$shell = getenv("COMSPEC");
$command = $shell + " /c echo %PATH% >con";
$tmp = strreplace($command,"%","%%");
message "%を置換して[" + $tmp + "]になりました。";
run $tmp;
endmacro;

runex文を使うと、パラメータで細かく動作を指定できます。
run "xxx.exe <con >con";
と同じような処理を、
runex "xxx.exe", 0, 1, "", 1, "", 1, "", 1, "", 0, 0, 0;
というような細かいパラメータを指定して行うことができます。

JavaScriptを使ったhidemaru.runProcessでは、マクロ実行後に操作を続行し、マクロ実行中でないときに結果を受け取るような使い方もできます。

参照:
run
runsync
runsync2
runex
hidemaru.runProcess