何の話?
大まかにいうと、この2個の合わせ技になります。
「送る」メニューに表示させる
参照記事②より
- WindowsキーとRキーを同時押しする。
- 「ファイル名を指定して実行」に「shell:sendto」を入力してOKを押す。
- C:\Users\○○\AppData\Roaming\Microsoft\Windows\SendTo が開くのを確認する。
- SendToフォルダの中にps1ファイルのショートカットを置く。
の手順となります。ここで4.のps1ファイルのショートカットですが、参照記事①より、(1)PowerShellのexe、(2)実行ポリシー、(3)ps1ファイルの順で記載する必要があります。今回の場合は
"C:\Program Files\PowerShell\7\pwsh.exe" -ExecutionPolicy RemoteSigned -File C:\○○\××.ps1
となりました。
レジストリに登録する
参照記事②より
- WindowsキーとRキーを同時押しする。
- 「ファイル名を指定して実行」に「regedit」を入力してOKを押す。
- レジストリエディタが開くのを確認する。
- レジストリエディタでコンピューター\HKEY_CLASSES_ROOT\*\shellとたどっていく。
- shellを右クリックして「新規」「キー」と選択する。
- フォルダ名みたいなのを変更する
- 右クリックして「新規」「キー」と選択する。
- 追加されたキーの名前をcommandに変更する。
- commandの右ペインから(既定)を右クリックして「修正」を選択する。
- 値のデータに実行するアプリケーションのパスを入力する。
の手順となります。ここで10.のアプリケーションのパスですが、どうも末尾に「 ”%1」を入れる必要があるようです。それ以外は送るメニューに追加した時と同じになります。従って今回の場合は、
"C:\Program Files\PowerShell\7\pwsh.exe" -ExecutionPolicy RemoteSigned -File C:\○○\××.ps1 "%1"
となりました。
PowerShellのスクリプトをショートカットなどで実行する場合は、ps1ファイルを直接指定するのではなく、PowerShellのexeファイルの引数として記載しなければならない。というところがミソになってくるのでしょうか。