¿Es posible con powershell automatizar una tarea cuando se abre o cierra un archivo? Más específicamente: si hago clic derecho en un archivo, aparece el "menú contextual", ¿es posible ejecutar uno de esos elementos en el menú automáticamente cuando se abre y/o cierra un archivo?
Respuesta1
No estoy completamente seguro de haber entendido su pregunta, así que permítame reformularla con mis propias palabras para que pueda verificar que estamos hablando de lo mismo aquí.
Según tengo entendido, desea hacer posible tener un elemento de contexto en el explorador, que si hace clic con el botón derecho en un archivo, selecciona la entrada, iniciará PowerShell con uno de sus scripts y analizará el nombre del archivo que seleccionó. como argumento extra.
Consulte esta pregunta para descubrir qué necesita en su script de Powershell para obtener los argumentos del archivo:https://stackoverflow.com/questions/2157554/how-to-handle-command-line-arguments-in-powershell(Daré un ejemplo de código más adelante en esta respuesta)
Ahora, en el registro en HKEY_CLASSES_ROOT, en *, debe crear un nuevo conjunto de claves para el elemento del menú contextual.
Cree la siguiente estructura de carpetas: *\MyScript\Command\Open
Nombra MyScript como quieras. Aparecerá en el menú contextual.
Proporcione el parámetro predeterminado para Abrir la ruta completa a PowerShell, luego la ruta completa de su script seguido de un -file %1 para el archivo en sí.
En su script, ahora puede usar
param (
[string]$file = ""
)
Si verifica si $file está vacío, entonces sabrá que no se analizó ningún archivo.