É possível com o PowerShell automatizar uma tarefa quando um arquivo é aberto ou fechado? Mais especificamente: se eu clicar com o botão direito em um arquivo existe o "menu de contexto", é possível executar um desses itens do menu automaticamente quando um arquivo é aberto e/ou fechado?
Responder1
Não tenho certeza se entendi sua pergunta, então deixe-me reformulá-la com minhas próprias palavras para que você possa verificar se estamos falando da mesma coisa aqui.
No meu entender, você deseja tornar possível ter um item de contexto no Explorer, que se você clicar com o botão direito em um arquivo, selecionar a entrada, ele iniciará o PowerShell com um de seus scripts e analisará o nome do arquivo que você selecionou como argumento extra.
Veja esta pergunta para descobrir o que você precisa em seu script Powershell para obter os argumentos do arquivo:https://stackoverflow.com/questions/2157554/how-to-handle-command-line-arguments-in-powershell(Darei um exemplo de código posteriormente nesta resposta)
Agora, no registro em HKEY_CLASSES_ROOT, em * você precisa criar um novo conjunto de chaves para o seu item de menu de contexto.
Crie a seguinte estrutura de pastas: *\MyScript\Command\Open
Nomeie MyScript como quiser. Ele aparecerá no menu de contexto.
Forneça o parâmetro padrão para Abrir o caminho completo para o PowerShell e, em seguida, o caminho completo do seu script seguido por -file %1 para o próprio arquivo.
No seu script, agora você pode usar
param (
[string]$file = ""
)
Se você verificar se $file está vazio, saberá que nenhum arquivo foi analisado.