文書の過去の版を表示しています。
選択中のファイルを外部スクリプトに渡す
いまいち使い方が把握できていないまま試したので、もっと楽な方法があるかも。
pythonなどで書かれた、簡単なファイル処理を行うスクリプト(引数としてファイルのパスを与えられ、ファイルに何らかの操作をするもの)に、As/Rで現在選択中のファイル(群)を渡す方法。
例として「バックアップとして、ファイル名の末尾に今日の日付を付与して同じディレクトリにコピーを作成する」というスクリプトがあったとする。「project.php」を引数に渡すと「project_20150202.php」を作ってくれるみたいなね。んで、As/Rで選択中のファイルにそのスクリプトを適用したいとする。
結論から言うと、コマンド定義ファイルとスクリプトコマンドファイル、2つのファイルを編集/作成する必要がある。
コマンド定義ファイル
As/Rで特定の動作(コマンド)を登録するには、「(ユーザーフォルダ)\ScriptCommand.txt
」などコマンド定義ファイルにコマンドIDとともに記述する。コマンド定義ファイルは複数あり、どれに書いても一応動作するが、用途によって分類できるように分かれている。
書式は次の通り。
「コマンドID<TAB>ファイル情報の送信手順(省略可能)<TAB>コマンドの呼び出しの抑止モード<TAB>コマンドのフルパス<TAB>説明」
コマンドのフルパスには、「外部実行ファイル(.exe)」または「スクリプトコマンドファイル」を指定できる。
このうち外部実行ファイルを使うと、実行ファイルは実行されるものの、引数として指定できる内容は限られ、現在選択中のファイルを指定することができない。(現在のディレクトリなど一部は指定することができる)
よって、スクリプトコマンドファイルを指定する方法を取ることになる。今回の例だと以下のように定義しておけばいい。
40004<TAB>NF-<TAB>%Script_dir%copyFileWithDate.txt<TAB>日付を付与してバックアップ
- ID:40004
- 他とかぶらない適当な番号を付ける。範囲の目安は各コマンド定義ファイルで指定されている。
- ファイル情報の送信手順
- スクリプトコマンドを指定したため不要。省略
- コマンドの呼び出しの抑止モード:NF-
- Nは実体のあるディレクトリからの呼び出しのみ許可。Fはファイルを選択している時のみ許可。
- コマンドのフルパス
- スクリプトコマンドファイルを指定。
%Script_dir%
は、ユーザーフォルダのScript
フォルダに置換される。
スクリプトコマンドファイル
スクリプトコマンドファイルは、(どこでもいいのだが基本は)「(ユーザーフォルダ)\Script\
」以下にUTF-16のテキストファイルで作る。引数の内容や渡し方(まとめてor1個ずつなど)など、いくつかの細かな設定を行った後、「Run=(実行ファイルのフルパス)」で実行する。
今回の例だとコマンド定義ファイルで指定した通り「(ユーザーフォルダ)\Script\copyFileWithDate.txt
」を作成し、内容を以下のようにする。
CommandLineOption="(実行したいpythonスクリプト.py)" ?SelFile? MultiCommandMode=1 ShiftSilentMode=0 BootDir= BootMode=0 OpenMode=0 ShowWindow=6 Run=(python本体)\python.exe
これで、選択中のファイル(?SelFile?が置換される)を、pythonスクリプトに渡すことができた。
後は、As/Rのオプションからキー割り当てでこのコマンドをたとえばShift-Bにでも割り振っておけば、一発でバックアップを作成できる。