[ヘルプTop] [戻る]
基本的なスクリプトコマンド
ここでは、基本的なスクリプトコマンドのみを取り上げます。
お気に入りやランチャーへ自動登録されるマクロや、エディタ起動などの拡張子判別して独自関連付けのような動作をさせるコマンドは、ここに記載されているコマンド類で実現が可能です。
プログラム的な要素である制御構文や、ユーザー操作を受け付けるコマンド類は、こちらを参照ください。
書式
アプリケーションの実行コマンド
ステータス設定コマンド
- 文字コードは、UTF-16(BOMの有無はどちらでも良いUNICODE、リトルエンディアン)
- ランチャや各種メニューなどで表示されるアイテム名は、ファイル名をそのまま表記として使用します。
リストなどで表示する場合に半角の「&」は撤去され、存在しないものとしてインクリメンタルサーチは実行されます。
メニューで表示する場合は「&」を付与することでショートカットキーとして使用することが可能ですが、全角文字の前に付与すると意味をなしません。
- アイコンインデックスは別ファイルで保持し、先頭のIconかRunのアイコンを取得します。
- //で始まる行はコメントとみなします。
//を文中に書いても、以降をコメントとみなすような動きにはなりませんので注意してください。
(例:「MessageBoxOK=//メッセージ」「Run=c:\browser.exe http://hoge.com」このようなスクリプトの場合に破綻するため)
文法から外れる行は、基本的に未処理行とみなしますが、文字列が数字変換できてしまう場合には動作することがありますのでご注意ください。
また文法チェックを厳密に行うCheckGrammar=1が指定されている場合はエラーになり、処理を継続するか確認を求められます。
- 1行の最大サイズは32,767文字です。(末尾の改行コード込み)
- メッセージ送信系・各種ジャンプの対象は、現在アクティブなタブへコマンドを発行します。
BootMode=5の終了待ち、?ANY?系の入力、MessageBox系や、各種ウェイトなどで、停止や遅延を伴うスクリプトの実行の際にはご注意ください。
(コマンド発行時点のアクティブタブが閉じられていたらメッセージの行き場が失われるため)
- 文頭に「EOF」が出現した時点で、以降のスクリプトファイルの読み込みを終了します。(ラベル定義なども全て無視されます)
- 処理行で「Exit」「ExitAll」が出現した時点で、スクリプトファイルの実行を終了します。
特殊環境変数
%App_Dir% | アプリケーションインストールディレクトリ |
%CMD_Dir% | 同梱外部コマンドディレクトリ |
%Viewer_Dir% | 同梱ビューアディレクトリ |
%UserCmd_Dir% | ユーザー用外部コマンド格納ディレクトリ |
%CmdPlugin_Dir% | コマンド型プラグイン格納ディレクトリ |
%User_dir% | ユーザー情報格納ディレクトリ |
%Script_dir% | スクリプトファイル格納ディレクトリ(ユーザー情報格納ディレクトリ配下) |
%Menu_dir% | メニュー定義ファイル格納ディレクトリ(ユーザー情報格納ディレクトリ配下) |
※OSの環境変数や、本体の状態変数など、多数の置換マクロが用意されています。
詳細は
置換マクロリファレンスを参照ください。
「外部アプリケーションを実行する」「任意のフォルダーへジャンプする」「任意のフォルダーを新しく開く」「拡張子を判別して実行する」といった動作をするための最重要のコマンドです。
このコマンド単体では細かな動作が指定できないので、後述のステータス設定用のコマンドで定義してやる必要があります。
Run
単純コマンド実行、コマンドラインでファイル名を渡します。
パス表記(実体のフルパス)
一括でファイル名を渡したり、逐次ファイルを渡したり、対象の属性を見てフォルダー移動したりすることが可能な実行コマンドです。
また新しいウィンドウを開いたりするのも、このコマンドを使用します。
「Run」コマンドが出現した時点で下記のオプションのステータスを参照して、即座に起動を行ないます。
- コマンドライン[CommandLineOption]
- アプリケーション起動モード[BootMode]
- 起動フォルダー[BootDir]
- 複数のアイテムが渡された場合に一度に渡す「MultiCommandMode」
- ファイル名の渡し方「SendInfoMode」
- 起動するコマンドの表示方法「ShowWindow」
- Shiftキーが押下されていた時のコマンドラインを展開するかを指示する「ShiftSilentMode」
- アプリケーションの終了を待つBootMode=5の時のタイムアウト時間「TimeOut」
- アプリケーションの起動後、定量的なウェイトを入れる「RunWait」(素早く連続起動するとトラブルを起こすアプリケーションで使用します)
【書式】
Run=%AddFile%
【例】
Run=%windir%notepad.exe
ExRun
拡張子判別実行の目的で使用し、コマンドラインで起動するアプリケーションのファイル名をフルパスで指定します。
「|」で区切ることによって、1つの拡張子に対して複数のコマンドを割り当てることができます。
この場合、実行時にポップアップダイアログが表示されて選択することになります。
「ExRun」コマンドが出現した時点で下記のオプションのステータスを保存し、起動準備を行ないます。
- 拡張子判別用のフィルタ[Filter]
「,」で区切ることによって複数の指定が可能で、大文字小文字は区別しません。未指定の場合はチェックなしで起動されます。
- コマンドライン[CommandLineOption]
- アプリケーション起動モード[BootMode]
- 起動フォルダー[BootDir]
- 起動するコマンドの表示方法「ShowWindow」
- アプリケーションの終了を待つBootMode=5の時のタイムアウト時間「TimeOut」
- アプリケーションの起動後、定量的なウェイトを入れる「RunWait」(素早く連続起動するとトラブルを起こすアプリケーションで使用します)
「ExRun」コマンドはファイルを読み終えた後に処理し、アプリケーションの実行が完了した時点で終了します。
この動作を選択ファイル毎に繰り返します。
組み込みコマンド
Previewbar | プレビューバーで表示します。 複数のファイルが送られた場合、終端のファイルを対象とします。 プレビューバーが非表示の場合は表示します。 |
ShellExecute | シェル実行します。 ShellExecute()APIに丸投げしますので、OSで対象ファイルに関連付けされたアプリケーションが起動されます。 |
例1:拡張子判別を利用した編集コマンドの例です。
画像はペイント、MS-WORDとMS-EXCEL用の拡張子を判別し、PDFはプレビューバー、見つからなかったらとりあえずメモ帳を開く記述になります。
CommandLineOption=?SelFile?
BootMode=0
Filter=bmp,gif,png,jpeg,jpg
ExRun=C:\WINDOWS\system32\mspaint.exe
(CommandLineOption、BootModeに変更がないので以降は記述を省略します)
Filter=doc,docx
ExRun=C:\Program Files\Microsoft Office\Office12\WINWORD.EXE
Filter=xls,xlsx
ExRun=C:\Program Files\Microsoft Office\Office12\EXCEL.EXE
Filter=pdf
ExRun=Previewbar
Filter=
ExRun=C:\WINDOWS\system32\notepad.exe
例2:拡張子判別を利用したビューアコマンドの例です
Filter=bmp,JPG,JPEG,DIB,RLE,CAM,J6I,GIF,MAC,MAG,MKI,PCD,PCX,PI,PIC,P2,PCT,PICT,PMP,PNG,PNM,PBM,PGM,PPM,Q0,RGB,Q4,RAS,RF,SJ1,TIF,TIFF,WMF,X,XBM,XPM,ico
ExRun=D:\TOOLS\CG\iview\i_view32.exe
Filter=html,htm,shtml,aspx,tmpl
ExRun=%Viewer_Dir%Brws.exe
Filter=EXE,LZH,LZS,CAB,ZIP,RAR,7z,GCA,TAR,TGZ,TBZ,TAZ,GZ,Z,BZ2,deb,RPM,CPIO,AR,JAR,ARJ,GZA,BZA,Yz1
ExRun=%Viewer_Dir%MArc.exe
Filter=avi,mpg,mpeg,wmv,asf,ra,ram,rm,pdf,swf,flv,fla
ExRun=%Viewer_Dir%Seeker.exe
Filter=
ExRun=%Viewer_Dir%Txv.exe
※その他に、外部アプリケーションを起動するコマンドとして、Shell、Call、Execの3種類のコマンドがあります。
こちらは制御用なのでここでは省略します。
詳細は「
その他のスクリプトコマンド」を参照ください。
実行系のコマンドの動きを設定するコマンドです。
各実行コマンドに対して、どのステータス設定マクロが影響を及ぼすかは、こちらの
実行コマンドの違い一覧を参照ください。
また、こちらの
定義系コマンド一覧でも、簡単にまとめていますので参照ください。
CommandLineOption
実行コマンドとコマンドラインオプションを分けて指定します。
コマンドラインオプションでは、様々な置換マクロが使用できます。
「Run」「ExRun」「Shell」コマンドにのみ影響を与えます
詳しくは「
置換マクロリファレンス」を参照ください。
【書式】
CommandLineOption=[コマンドラインオプション文字列]
【例】
CommandLineOption=/a "c:\program files\sample.txt"
Filter
ExRunコマンドで起動の対象とするか否かの判定を行う拡張子を指定します。
複数指定する場合は、カンマ(,)で区切ってください。
「ExRun」コマンドにのみ影響を与えます
【書式】
Filter=[拡張子を列挙]
【圧縮ファイルビューア用の例】
Filter=EXE,LZH,LZS,CAB,ZIP,RAR,7z,GCA,TAR,TGZ,TBZ,TAZ,GZ,Z,BZ2,deb,RPM,CPIO,AR,JAR,ARJ,GZA,BZA,Yz1
MultiCommandMode
複数のアイテムが渡された場合に一度に渡すかを指定します。
初期値はMultiCommandMode=0が指定されています。
一度に渡す場合、「c:\test.txt c:\hoge.txt c:\txt.txt」のようにコマンドラインで渡されます。
「Run」「Shell」コマンドにのみ影響を与えます
【書式】
MultiCommandMode=[1:一度に渡す/0:1個ずつ渡す]
【例】
MultiCommandMode=0
SendInfoMode
ファイル名の渡し方を指定します。
初期値は0が指定されています。
ファイルドロップで渡す場合は、CommandLineOptionを無視します。
またファイルドロップはトップレベルウィンドウにドロップを受け付けることが可能なアプリケーションしか利用できません。
同梱の外部コマンドは、大量のファイル名を渡されることを想定しているためファイルドロップで渡す方式を採用しています。
「Run」「Shell」コマンドにのみ影響を与えます
※リストが未選択状態の場合は、ドラッグアンドドロップで渡すファイルが存在しないので、SendInfoMode=1の場合であってもコマンドラインで渡しで起動します。
メッセージループが有効になるまで待つという動作をしません。
【書式】
SendInfoMode=[0:コマンドラインで渡す/1:ファイルドロップで渡す]
【例】
SendInfoMode=0
ShiftSilentMode
Shiftが押されていたらコマンドラインを無視するかを指定します。
無指定の場合の初期値はShiftSilentMode=1が指定されています。
【書式】
ShiftSilentMode=[0:Shiftが押されていてもコマンドラインを無視しない/1:Shiftが押されていたらコマンドラインを無視する]
【例】
ShiftSilentMode=0
BootDir
起動フォルダーを指定します。
初期値は未指定です。
「Call」「Exec」コマンドの場合は、1を指定しても展開されません。
現在のフォルダー | 未指定 |
アプリケーションディレクトリ | 1 |
指定フォルダー | 文字列指定 |
【書式】
BootDir=[起動フォルダー]
【例】
BootDir=c:\
BootMode
アプリケーションの起動モードを指定します。
初期値はBootMode=0が指定されています。
複数のファイルをまとめて開くような動作をした場合、アプリケーションの起動が遅いタイプのコマンドでは遅延が発生することがあります。
それに合わせて、ウェイト値を指定することができます。
※アプリケーションの終了を待つBootMode=5の時は、タイムアウト時間「TimeOut」コマンドが適用されます。
動作 | 値 |
通常(ノーウェイト) | 0 |
DDE終了待ち | 1 |
200ms待つ | 2 |
500ms待つ | 3 |
バックグラウンドで実行 | 4 |
1つずつ終了を待つ | 5 |
【書式】
BootMode=[起動モードの値]
【例】
BootMode=3
OpenMode
指定されたコマンドラインをどのように処理するか指定します。
初期値はOpenMode=0が指定されています。
OpenMode=0の場合、ファイルであれば実行し(「1:強制的に実行」とみなす)、フォルダーであれば開き(「3:強制的に新しいウィンドウで開く」とみなす)ます。
ファイルの場合に1が指定された場合は、シェル実行されます。
フォルダーの場合も同様にシェル実行されますので通常は、エクスプローラーで開かれます。
フォルダーの場合に2/3/4が指定された場合は、それぞれ「移動」「新しく開く」「バックグラウンドで開く」となります。
ファイルの場合に2/3/4が指定された場合はファイルのあるフォルダーが対象になります。
動作 | 値 |
自動判別 | 0 |
強制的に実行 | 1 |
強制的にジャンプ | 2 |
強制的に新しいウィンドウで開く | 3 |
強制的にバックグラウンドで開く | 4 |
【書式】
OpenMode=[動作値]
【コマンドラインで指定されたものを新しく開く例】
OpenMode=3
ShowWindow
Run/ExRun/Call/Exec/Shellのコマンドの実行時のウィンドウの状態を指定します。
未設定の場合は、1が設定されているものとみなされます。
非表示状態で外部アプリケーションを起動した場合、自動終了するプログラムでないと、タスクマネージャーから強制終了するしか方法がありません。
さらに応答を待つタイプの呼び出し方をすると、As/Rのプロセスも延々と止まってしまうので、利用には十分注意してください。
【書式】
ShowWindow=表示モード値
【最小化して起動する例】
ShowWindow=6
追加情報
表示モードの値は、以下のWindowsで定義されている値が使用できます。
#define SW_HIDE 0
#define SW_SHOWNORMAL 1(デフォルト)
#define SW_NORMAL 1
#define SW_SHOWMINIMIZED 2
#define SW_SHOWMAXIMIZED 3
#define SW_MAXIMIZE 3
#define SW_SHOWNOACTIVATE 4
#define SW_SHOW 5
#define SW_MINIMIZE 6
#define SW_SHOWMINNOACTIVE 7
#define SW_SHOWNA 8
#define SW_RESTORE 9
#define SW_SHOWDEFAULT 10
#define SW_FORCEMINIMIZE 11
#define SW_MAX 11
TimeOut
Run/ExRun/Call/Shellコマンドのタイムアウト値をミリ秒単位で指定します。
(Run/ExRun/Shellの場合は、BootMode=5の時のみ適用されます)
初期値は30000ミリ秒(30秒)になっています。
無制限で待つようにするには、-1を指定してください。
【書式】
TimeOut=タイムアウト時間
【例】
TimeOut=-1
RunWait
Run/ExRun/Call/Exec/Shellコマンドを実行した後に待機する時間を指定します。
高速で連続起動すると問題を起すタイプの実行ファイルを指定する場合にご利用ください。
初期値は0ミリ秒になっています。
【書式】
RunWait=[ウェイト(ミリ秒)]
【例】
RunWait=0
【使用事例】
・Microsoft社のOffice2003以前は、素早く大量にファイルを開くとテンプレートが破損することがあります。
Office製品の修復セットアップが必要になります。もちろんエクスプロローラーにて大量に開くと同じ現象が起こります。
・WZソフトウェアのWz Editor(ファイルが開けなかったり、設定が反映されない事がある)
本体とローダーが分離されており、アプリケーションの起動にタイムラグが存在する特殊なアプリケーションであるためです。
※例示したものは、有名で優秀なソフトウェアです。この問題は決して特殊な事例ではありません。
エクスプローラーやバッチファイルなどで、同様の作業を行った場合に類似の問題は発生します。
関連項目
・
その他のスクリプトコマンド
・
スクリプトコマンドリファレンス
・
スクリプトの制御構文
・
置換マクロリファレンス
・
置換マクロ対応表
・
実行コマンドの違い一覧
・
定義系コマンド一覧
・
ウィンドウ制御文字列の書式
・
復元スクリプト詳細