[ヘルプTop] [戻る]

置換マクロリファレンス

 置換マクロは基本的に大/小文字判定があります。(OSの環境変数は例外です)
 変数に格納されているテキストがどのように置換されているかは、Messagebox系のコマンドで参照/確認するとテストやデバッグがしやすいでしょう。

現在のフォルダー置換マクロ

 現在開いているフォルダーを元に置換を行います。
 ?TargetDir?と?TargetDrive?は、As/R本体から呼び出されたとき以外は、無効になりますのでご注意ください。
 ビューアーや、一部コマンドからもスクリプトコマンドを実行しているものがあります。
 例えばテキストビューアーから現在閲覧しているファイルを編集するとか、圧縮ファイルビューアーから編集/閲覧などが実行されることがあります。
?NowDir? 現在のフォルダー(最後に\記号なし)をダブルクォーテーションで括る
?nowdir?現在のフォルダー(最後に\記号なし)
?Drive?現在のドライブ(ドライブ名+:、例「A:」「C:」)
?Dir?現在のドライブ名を付与しないディレクトリ名(\Windows\System32\)
?TargetDir? 2画面モードなら、アクティブリストの反対側のリストのパス
1画面モードならアクティブなリストのパス
対象のリストが仮想フォルダーなら無効になる
ドライブルートを除いて末尾に¥は付かない
?TargetDrive? 2画面モードなら、アクティブリストの反対側のリストのドライブ
1画面モードならアクティブなリストのドライブ
対象のリストが仮想フォルダーなら無効になる

選択しているファイル置換マクロ

 「ExRun」の場合「Filter」によるフィルタ判定が適用されます。
 複数のアイテムが渡された場合に一度に渡す場合(MultiCommandMode=1)、スペース区切りで列挙されます。
?SelFile?現在選択中のフルパスファイル名、ダブルクォーテーションで括る
?selfile?現在選択中のフルパスファイル名
?SelPath?現在選択中のファイルのパス名(末尾に必ず\が付きます)
?SelParent?現在選択中のファイルのパス名(ドライブルートを除いて末尾に\が付きません)
?FileName?現在選択中のファイル名
?Name?現在選択中のファイル名(拡張子なし)
?Ext?現在選択中のファイル名の拡張子
旧作との互換性のため、それぞれをダブルクォーテーションで括る「?filename?」「?name?」「?ext?」「?selpath?」も機能として持っていますが、利用は推奨いたしません。
※?SelPath?は一つのフォルダーに、複数のパスが混在する仮想フォルダー(例:ゴミ箱やデスクトップなど)での利用を想定しています。
※スクリプト内のどこかに、選択しているファイル置換マクロが存在する場合、本体の「オプション→その他→起動制御→大量のアイテムを開こうとした時に警告する」の影響を受けて、警告メッセージが表示される場合があります。

特殊環境変数

 As/Rのインストール環境を元に展開する置換マクロです。
 こちらを使用することで、設定を他のPCなどに持ち運びやすくなったりと、環境依存しにくいスクリプトを作成することが可能になります。
%App_Dir%アプリケーションインストールディレクトリ
%CMD_Dir%同梱外部コマンドディレクトリ
%Viewer_Dir%同梱ビューアディレクトリ
%UserCmd_Dir%ユーザー用外部コマンド格納ディレクトリ
%CmdPlugin_Dir%コマンド型プラグイン格納ディレクトリ
%User_dir%ユーザー情報格納ディレクトリ
%Script_dir%スクリプトファイル格納ディレクトリ(ユーザー情報格納ディレクトリ配下)
%Menu_dir%メニュー定義ファイル格納ディレクトリ(ユーザー情報格納ディレクトリ配下)

OS環境変数

 他にもOSに定義されているものがあれば、それらも適用されます。
 また、OSの保持している環境変数ですので、大/小文字の区別はありません。
%TEMP%テンポラリフォルダー
%TMP%テンポラリフォルダー
%OS%オペレーティングシステム
%COMPUTERNAME%コンピュータ名
%SystemDrive%システムドライブ
%Systemroot%システムフォルダー
%WINDIR%Windowsフォルダー
%USERDOMAIN%ドメイン名
%ProgramFiles%プログラム用トップディレクトリ
%CommonProgramFiles%プログラム用共通ディレクトリ
%LOGONSERVER%ログオンサーバ
%USERNAME%ユーザー名
%ALLUSERSPROFILE%ALL Usersユーザープロファイルフォルダー
%USERPROFILE%Userユーザープロファイルフォルダー
%APPDATA%Userユーザープロフィールデータ保存先

現在時刻置換マクロ

 現在の時刻を参照して数値ないし文字列に置換します。
 使用例として下記のように記述すると、メモ帳で現在のウィンドウで開いているフォルダーに「2004-12-31.txt」のようなテキストファイルを作製して開きます。

CommandlineOption="?nowdir?\?Date?.txt"
Run=notepad.exe
?Date?日付(%Y-%m-%d)
?Time?時刻(%H-%M-%S)
?Year?年(%Y)
?Month?月(%m)
?Day?日(%d)
?Hour?時(%H)
?Minute?分(%M)
?Second?秒(%S)
?Week?曜日の省略形(%a)
?WEEK?曜日(%A)
?ShellTime?コントロールパネルの設定される書式(%c)

入力系マクロ

 入力ダイアログを表示し、何らかの入力を求めます。
 入力系の置換マクロは、本体から呼び出した場合のみ有効になります。
?any?
?ANY?
?Any?
汎用テキスト入力ダイアログを開きます。
?any?はダブルクォーテーションなし、?ANY?は?any?と同じ(予備)、?Any?は入力内容をダブルクォーテーションで括ります。
?anyfile?
?ANYFILE?
?AnyFile?
ファイル名の入力ダイアログを開きます。
?anyfile?はダブルクォーテーションなし、?ANYFILE?は?anyfile?と同じ(予備)、?AnyFile?は入力内容をダブルクォーテーションで括ります。
?anydir?
?ANYDIR?
?AnyDir?
フォルダー選択ダイアログを開きます。
?anydir?はダブルクォーテーションなし、?ANYDIR?は?anydir?と同じ(予備)、?AnyDir?は入力内容をダブルクォーテーションで括ります。
(入力内容には、必ず最後に\が付与されます)

内部状態取得

 As/R本体の現在の状態を取得する置換マクロです。
 例えば、ステータスバーが表示されていればPostMessageコマンドを使用して非表示にするとか、主に本体制御の変数的な使い方をすることを想定しているものです。

※State:で始まる置換マクロは、スクリプト呼び出し直後に本体に問い合わせたときの値なります。
 ただしスクリプト自体が本体とは非同期で動作するため、連続して並列動作をさせると現在の状態と異なる値を返すことがあります。
 (適当なタイミングでウェイトを入れるか、オプションで同時実行数を制限する設定にすれば問題を解消できます)
?SelectedCount?スクリプトに渡されたアイテムの数、通常はアクティブリストで選択されているアイテム数になる
?ScriptName?スクリプト自身のファイル名
?ScriptPath?スクリプト自身の格納フォルダー名
?ErrorLine?スクリプトのエラー発生行。
エラーが発生しないと変換できないため、CheckGrammarの指定の中でしか使えません。
?State:ShowHideItem?隠しアイテムを表示しているか否か(0/1)
?State:StatusBar?ステータスバーを表示しているか否か(0/1)
?State:ToolBar?ツールバーを表示しているか否か(0/1)
?State:TabBar?タブバーを表示しているか否か(0/1)
?State:TreeBar?フォルダーバーを表示しているか否か(0/1)
?State:HistoryBar?最近閉じたウィンドウバーを表示しているか否か(0/1)
?State:PreviewBar?プレビューバーを表示しているか否か(0/1)
?State:WindowManageBar?ウィンドウ管理バーを表示しているか否か(0/1)
?State:TabletAssistBar?タブレット支援バーを表示しているか否か(0/1)
?State:OperationMode?デスクトップモードかタブレット支援モード(0:デスクトップモード 1:タブレット支援モード)
?State:TabletMode?タブレット支援モードのモード(0:ファイル操作 1:シェル実行 2:エディタ 3:ビューア)
?State:UserBar0?ユーザー定義バー1を表示しているか否か(0/1)
?State:UserBar1?ユーザー定義バー2を表示しているか否か(0/1)
?State:UserBar2?ユーザー定義バー3を表示しているか否か(0/1)
?State:UserBar3?ユーザー定義バー4を表示しているか否か(0/1)
?State:UserBar4?ユーザー定義バー5を表示しているか否か(0/1)
?State:UserBar5?ユーザー定義バー6を表示しているか否か(0/1)
?State:UserBar6?ユーザー定義バー7を表示しているか否か(0/1)
?State:UserBar7?ユーザー定義バー8を表示しているか否か(0/1)
?State:UserBar8?ユーザー定義バー9を表示しているか否か(0/1)
?State:UserBar9?ユーザー定義バー(予備)を表示しているか否か(0/1)
?State:ViewMode?表示モードを表す数字
?State:Sort?並び順を表す数字
(OSやシェル拡張ツールによって数字は増減する)
?State:IconMode?アイコン表示モードを表す数字
(0:小さいアイコン 1:中アイコン 2:大アイコン 3:サムネイル(小) 4:サムネイル(中) 5:サムネイル(大))
?State:Order?昇/降順(0/1)
?State:FolderPriority?フォルダー優先か否か(0/1)
?State:IsVirtual?仮想フォルダーか否か
(0:実体 1:一般的な仮想フォルダー 2:コンピュータ 3:ゴミ箱 4:ユーザーディレクトリ)
?State:IsNetwork?ネットワークフォルダーか否か(0/1)
?State:DivisionWindow?ウィンドウ分割モードか否か(0/1)
?State:Navilock?ナビゲートロックモードか否か(0/1)
?State:FilterArea?フィルタが表示されているか否か(0/1)
?State:SlectionArea?ディレクトリ内検索が表示されているか否か(0/1)
?State:ListItemCount?リストで表示されているアイテム数
?State:SelectedSize?リストで選択されているアイテムの合計サイズ
?State:ListItemSize?リストで表示されているアイテムの合計サイズ
?State:WindowCount?現在開かれているタブの数
?State:SyncMove?画面分割の際にフォルダー移動を同期するか否か(0/1)
?State:SyncFocus?画面分割の際にフォーカス移動を同期するか否か(0/1)
?State:SizeCmp?画面分割の際にサイズ/日付比較モードか否か(0/1)

スクリプト作成用テンプレート置換マクロ

 ユーザー定義バーにドロップなどで、スクリプトを新規作成する際に作られるテンプレート用の特殊なマクロです。
 選択アイテムをランチャに登録コマンドなどで使用する置換文字列です。

%AddFile% 拡張子判別コマンドとして新規作成される場合はNULLに置換される。
選択アイテムをランチャやお気に入りに登録などのコマンドの場合は、選択ファイルのフルパスに置換される。
%CommandLineOption% 拡張子判別コマンドとして新規作成される場合は「?SelFile?」に置換される。
選択アイテムをランチャやお気に入りに登録などのコマンドの場合は、登録時の動作の設定に従って置換される。

関連項目
基本的なスクリプトコマンド
その他のスクリプトコマンド
スクリプトコマンドリファレンス
スクリプトの制御構文

置換マクロ対応表
実行コマンドの違い一覧
定義系コマンド一覧
ウィンドウ制御文字列の書式
復元スクリプト詳細