![エクスプローラーで右クリックして特定のファイル/フォルダーにスクリプトを適用する方法 (UNC パスの場合)](https://rvso.com/image/1711474/%E3%82%A8%E3%82%AF%E3%82%B9%E3%83%97%E3%83%AD%E3%83%BC%E3%83%A9%E3%83%BC%E3%81%A7%E5%8F%B3%E3%82%AF%E3%83%AA%E3%83%83%E3%82%AF%E3%81%97%E3%81%A6%E7%89%B9%E5%AE%9A%E3%81%AE%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%2F%E3%83%95%E3%82%A9%E3%83%AB%E3%83%80%E3%83%BC%E3%81%AB%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%E3%82%92%E9%81%A9%E7%94%A8%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95%20(UNC%20%E3%83%91%E3%82%B9%E3%81%AE%E5%A0%B4%E5%90%88).png)
Windows エクスプローラーでファイルを右クリックし、「スクリプト XYZ の適用」を選択して、特定のファイルに cmd または powershell スクリプトを適用する方法を探しています。
使用例としては、ファイルを書き込み禁止にすることがあり、バッチ ファイルには次の内容が含まれます。
attrib +r %filename%
%filename%
エクスプローラーで右クリックしたファイルの名前はどこですか。
今のところは単一のファイルで十分ですが、複数のファイル (フォルダー内の複数のファイルを選択) やフォルダー全体 (フォルダーを選択) に適用することも検討しています。
このソリューションは Windows 10 でも機能するはずですが、可能であれば UNC パスと Windows 7 でも機能します。
編集: これまでのところ、UNCパスを除いてすべて完了しました。この例はファイルに対して機能します(この情報源そしてこの情報源):
レジストリエントリ:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\*\shell\SomeName]
@="NameOfTheMenueItem"
"icon"="someicon.ico"
[HKEY_CLASSES_ROOT\*\shell\SomeName\command]
@="\"X:\\folder\\batchfile.cmd\" \"%1\""
バッチファイル:
set filepath=%1
attrib +r %filepath%
バッチファイル(フォルダー用):
set folderpath=%1
attrib +r %folderpath%\*.*
残る問題:
- UNCパスで動作する必要がある
- バッチファイルにフォルダーパスを「」なしで返して変更します
"X:\folderpath\*.*"
(現時点では"X:\folderpath"
戻り値として取得しますが、追加するだけではうまくいきませんが、\*.*
結果は"X:\folderpath"\*.*
あまり良く見えず、ある時点で問題が発生するかどうかはわかりません) - 選択したフォルダのすべてのファイルとサブフォルダに再帰的な書き込み保護を作成します。