プログラム実行の詳細(Ver7.11対応版)
目次そのほかのコマンド− プログラム実行の詳細
 プログラム実行は、他のプログラムを実行するための機能です。
 例えば、エクスプローラを実行したい場合、「コマンドライン」に「explorer」と入力して実行すると、エクスプローラを起動することができます。

 標準入出力をリダイレクトすることもできます。
 マクロのrun文でも同様のことができます。

 リダイレクトは、通常コマンドプロンプト上で実行するプログラムを、秀丸エディタ上で起動し、その結果を秀丸エディタ上に出力するために使います。結果を秀丸エディタ上に出力するかどうかは自動で判断されます。

 コマンドライン上に「<filename 」という文字列を付けると、標準入力をリダイレクトして、filename の 内容を標準入力に渡すことができます。filename を「con」にすると、現在編集中の内容を渡すようになります。「con」を指定していて、かつ範囲選択されている場合は、範囲選択の内容を渡します。
 逆に「>filename 」という文字列を付けると、標準出力をリダイレクトして、ファイルに出力します。filename を「con」にすると、範囲選択されている場合は、範囲選択の内容と出力結果を置換するようになります。「>filename 」や「>con」を指定しないでおくと新規の秀丸エディタに出力されます。
 コンソールアプリケーションで、ウィンドウを出したくない場合は、「>nul」と指定してください。
 コマンドライン中に「%f」「%d」「%b」という文字を書いておくと、この文字は、それぞれ現在のファイル名やフォルダ名に置換されます。
%f は フルパスのファイル名
%d は フォルダ名
%b は フォルダを除いたファイル名
%% と書くと % に置き換わります
 次に例をいろいろあげますので、いろいろ応用してみましょう。
結果を秀丸エディタに出力する
 例えば、fc.exeの結果を秀丸エディタ上に出力する場合、コマンドラインにそのまま書くだけで自動で判断して新規の秀丸エディタ上に結果が出力されます。
例:fc aaa.txt bbb.txt

フィルタを使用する
 例えば、範囲選択の内容をsort.exeに渡して、結果を置換する場合、「<con」と「>con」を付けます。「<con」は範囲選択の内容をsort.exeに渡すという意味で、「>con」は範囲選択の内容とsort.exeの出力結果を置換するという意味になります。
例:sort <con >con
 こういう機能をマクロに登録しておくと、フィルタを新しい機能として使うことができるので便利です。
例: if( selecting == 1 ) {
    run "sort <con >con";
}

現在編集中のファイル名をパラメタに渡す
 例えば、コンパイラcl.exeを起動したいという場合、第一パラメタに「%f」と書いておくと、%fの部分がファイル名に置換されるので、他のファイルにも共通して同じコマンドラインを使うことができます。
例:cl %f

コマンドプロンプトの内部コマンドの結果を出力する
 dirやtypeなどは、exeファイルではないのでそのままでは使うことができませんが、command.com(WindowsNT,2000,xpの場合はcmd.exe)を経由することで使用することができます。
例:
command.com /c dir
cmd /c dir