Можно ли с помощью powershell автоматизировать задачу при открытии или закрытии файла? А именно: если я щелкну правой кнопкой мыши по файлу, появится «контекстное меню», можно ли автоматически запустить один из пунктов меню при открытии и/или закрытии файла?
решение1
Я не совсем уверен, что понял ваш вопрос, поэтому позвольте мне перефразировать его своими словами, чтобы вы могли убедиться, что мы говорим об одном и том же.
Насколько я понимаю, вы хотите сделать возможным наличие контекстного элемента в проводнике, чтобы при щелчке правой кнопкой мыши по файлу, выборе записи запускался PowerShell с одним из ваших скриптов и анализировал имя выбранного вами файла в качестве дополнительного аргумента.
Посмотрите этот вопрос, чтобы узнать, что вам нужно в скрипте Powershell для получения аргументов файла:https://stackoverflow.com/questions/2157554/как-обрабатывать-аргументы-командной-строки-в-powershell(Позже в этом ответе я приведу пример кода)
Теперь в реестре в разделе HKEY_CLASSES_ROOT, в разделе * вам необходимо создать новый набор ключей для вашего пункта контекстного меню.
Создайте следующую структуру папок: *\MyScript\Command\Open
Назовите MyScript как угодно. Он появится в контекстном меню.
Укажите параметр по умолчанию для параметра «Открыть» полный путь к PowerShell, затем полный путь к вашему скрипту, а затем -file %1 для самого файла.
В вашем скрипте теперь вы можете использовать
param (
[string]$file = ""
)
Если вы проверите, пуст ли $file, то вы будете знать, что ни один файл не был проанализирован.