差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
software:asr:external_script [2020/01/13] ikatakossoftware:asr:external_script [2023/04/28] (現在) – [確認ダイアログの表示] ikatakos
行 7: 行 7:
 例として「バックアップとして、ファイル名の末尾に今日の日付を付与して同じディレクトリにコピーを作成する」というスクリプトがあったとする。「project.php」を引数に渡すと「project_20150202.php」を作ってくれるみたいなね。んで、As/Rで選択中のファイルにそのスクリプトを適用したいとする。 例として「バックアップとして、ファイル名の末尾に今日の日付を付与して同じディレクトリにコピーを作成する」というスクリプトがあったとする。「project.php」を引数に渡すと「project_20150202.php」を作ってくれるみたいなね。んで、As/Rで選択中のファイルにそのスクリプトを適用したいとする。
  
-結論から言うと、コマンド定義ファイルとスクリプトコマンドファイル、2つのファイルを編集/作成する必要がある。+結論から言うと、コマンド定義ファイルとスクリプトコマンドファイル、2つのファイルを編集/作成する必要がある。\\ 
 +また、それを使うには、オプションの「キー割り当て」等から、定義したコマンドを何らかの操作に割り当てる必要がある。
  
 =====コマンド定義ファイル===== =====コマンド定義ファイル=====
 [[http://www.all.undo.jp/asr/man5/8.Custmize/1.UserFolder/02.html|コマンド定義ファイル]] [[http://www.all.undo.jp/asr/man5/8.Custmize/1.UserFolder/02.html|コマンド定義ファイル]]
  
-As/Rで特定の動作(コマンド)を登録するには、「''(ユーザーフォルダ)\ScriptCommand.txt''」などコマンド定義ファイルにコマンドIDとともに記述する。コマンド定義ファイルは複数あり、れにいても一応動作するが、用途によっ分類できるよう分かれている。+As/Rで特定の動作(コマンド)を登録するには、「''(ユーザーフォルダ)\ScriptCommand.txt''」などコマンド定義ファイルにコマンドIDとともに記述する。コマンド定義ファイルは他にも ''ExternalUserCommand.txt'' など複数あり、用途に沿ったファイルに定義する。 
 + 
 +<note> 
 +ユーザーのコマンド定義は、スクリプトコマンドであばちゃんと ''ScriptCommand.txt'' 定義する必要があるっぽ。 
 + 
 +As/Rに最初から定義されいるコマンド群の多くは(スクリプトコマンド含め)括で ''ExternalDefCommand.txt'' にまとめられているため、 
 +同じようにユーザーが定義るものは一括で ''ExternalUserCommand.txt'' に書いても良さそうに見えるが、 
 +実際はスクリプトコマンドを定義しもエラーで実行できない。 
 + 
 +例えば ''ExternalDefCommand.txt'' におけ「選択中のファイルをエディタで起動させるスクリプトコマンド ''Script/Editor.txt''」の定義と 
 +同様のものを、コマンドIDだけ変更して ''ExternalUserCommand.txt'' 定義し呼び出しても、エラーで実行できな。 
 +''ScriptCommand.txt'' に定義すと実行できる。 
 + 
 +''ExternalUserCommand.txt'' は、名前の通りあくまで「外部コマンド」定義用で、それ以外も定義できる ''ExternalDefCommand.txt'' が少し特別な扱いという感じなのかな 
 +</note>
  
 書式は次の通り。 書式は次の通り。
行 30: 行 45:
     * スクリプトコマンドを指定したため不要。省略     * スクリプトコマンドを指定したため不要。省略
   * コマンドの呼び出しの抑止モード:NF-   * コマンドの呼び出しの抑止モード:NF-
-    * Nは実体のあるディレクトリからの呼び出しのみ許可。Fはファイルを選択している時のみ許可+    * Nは実体のあるディレクトリからの呼び出しのみ許可。Fはファイルを選択している時のみ許可 
 +    * ディレクトリも対象にするなら ''NFD'' とする
   * コマンドのフルパス   * コマンドのフルパス
     * スクリプトコマンドファイルを指定。     * スクリプトコマンドファイルを指定。
     * ''%Script_dir%''は、ユーザーフォルダの''Script''フォルダに置換される。     * ''%Script_dir%''は、ユーザーフォルダの''Script''フォルダに置換される。
 +
 =====スクリプトコマンドファイル===== =====スクリプトコマンドファイル=====
  
行 62: 行 79:
  
 普通はこれだけでよいが、あまり簡単に実行できてしまうと、日常で使っていく内についうっかりキーを間違えてしまわないとも言い切れない。行う処理が時間のかかるものだったり、削除など破壊的な動作をするものであれば、なおさら面倒なことになる。 普通はこれだけでよいが、あまり簡単に実行できてしまうと、日常で使っていく内についうっかりキーを間違えてしまわないとも言い切れない。行う処理が時間のかかるものだったり、削除など破壊的な動作をするものであれば、なおさら面倒なことになる。
 +
 +スクリプトコマンドファイルで、メッセージボックスを表示させることができる。\\
 +OK/キャンセル型のメッセージボックスを表示し、押されたボタンを戻り値として変数に格納、if分岐で実行を制御できる。
 +
 +<code - (例)script/MyScript.txt>
 +CommandLineOption= ...
 +MultiCommandMode= ...
 +...
 +
 +var $確認$ = MessageBox,0x131,○○を本当に実行しますか?
 +if 1 == $確認$
 +    Run=(実行ファイルへの絶対パス)
 +endif
 +</code>
 +
 +++++ 過去の方法 |
 +
 +現在、「※MessageBoxYNは互換性維持のために残されてるコマンドなので、使用を推奨しません。」とされている。
  
 スクリプトコマンドファイルの先頭に1行追加するだけで、確認ダイアログを表示させ、万が一の際のワンクッションとすることができる。 スクリプトコマンドファイルの先頭に1行追加するだけで、確認ダイアログを表示させ、万が一の際のワンクッションとすることができる。
  
 >> ''MessageBoxYN=処理を開始します'' >> ''MessageBoxYN=処理を開始します''
 +
 +++++
software/asr/external_script.1578927144.txt.gz · 最終更新: 2020/01/13 by ikatakos
CC Attribution 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0