差分

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

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
software:asr:external_script [2023/04/28] 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> <note>
-As/Rに最初からるコマンド群の多くは一括で ''ExternalDefCommand.txt'' にまとめられているため、+ユーザーのコマンド定義は、スクリプトコマンドであればちゃんと ''ScriptCommand.txt'' に定義する必要があるっぽい。 
 + 
 +As/Rに最初から定義されているコマンド群の多くは(スクリプトコマンドも含め)一括で ''ExternalDefCommand.txt'' にまとめられているため、
 同じようにユーザーが定義するものは一括で ''ExternalUserCommand.txt'' に書いても良さそうに見えるが、 同じようにユーザーが定義するものは一括で ''ExternalUserCommand.txt'' に書いても良さそうに見えるが、
-実際は例えば ''ExternalDefCommand.txt''定義されてい選択中のファイルをエディタで起動させるスクリプト ''Script/Editor.txt'' と +実際はスクリプトコマンドを定義してもエラーで実行できない。 
-同様のものを ''ExternalUserCommand.txt'' に定義して呼び出しても、エラーで実行できない。+ 
 +例えば ''ExternalDefCommand.txt''おけ選択中のファイルをエディタで起動させるスクリプトコマンド ''Script/Editor.txt''」の定義と 
 +同様のものを、コマンドIDだけ変更して ''ExternalUserCommand.txt'' に定義して呼び出しても、エラーで実行できない。 
 +''ScriptCommand.txt'' に定義すると実行できる
  
-ユーザーのコマンド定義は、スクリプトコマンドばちゃんと ''ScriptCommand.txt'' に定義する必要ある+''ExternalUserCommand.txt'' は、名前通りあくまで「外部コマンド定義、そ以外も定義できる ''ExternalDefCommand.txt''少し特別な扱いという感じなのかな
 </note> </note>
  
行 39: 行 45:
     * スクリプトコマンドを指定したため不要。省略     * スクリプトコマンドを指定したため不要。省略
   * コマンドの呼び出しの抑止モード:NF-   * コマンドの呼び出しの抑止モード:NF-
-    * Nは実体のあるディレクトリからの呼び出しのみ許可。Fはファイルを選択している時のみ許可+    * Nは実体のあるディレクトリからの呼び出しのみ許可。Fはファイルを選択している時のみ許可 
 +    * ディレクトリも対象にするなら ''NFD'' とする
   * コマンドのフルパス   * コマンドのフルパス
     * スクリプトコマンドファイルを指定。     * スクリプトコマンドファイルを指定。
     * ''%Script_dir%''は、ユーザーフォルダの''Script''フォルダに置換される。     * ''%Script_dir%''は、ユーザーフォルダの''Script''フォルダに置換される。
 +
 =====スクリプトコマンドファイル===== =====スクリプトコマンドファイル=====
  
行 71: 行 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.txt · 最終更新: 2023/04/28 by ikatakos
CC Attribution 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0