1 votos

¿Cómo ejecutar un script de poweshell desde el menú contextual (en archivo de audio)?

Probé esta prueba.reg

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\SystemFileAssociations\audio\shell\ChunkAudio]@="chunk audio (5 min)""Icon"="%SystemRoot%\\System32\\shell32.dll,186"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\SystemFileAssociations\audio\shell\ChunkAudio\Command]@="%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe C:\Users\Me\Desktop\5min_chunk_audio.ps1 %1"

Se añade un menú contextual de los archivos de audio como se esperaba, pero envía un mensaje de error al hacer clic en ella:

Windows no tiene acceso al dispositivo especificado, ruta de acceso o archivo. Usted no puede tenga los permisos apropiados para tener acceso al elemento.

Puede ser porque la prueba.reg no añade nada a la de "campo de Datos" en ....shell\ChunkAudio\Comando en el registro. (He intentado manualmente añadir el %SystemRoot%\system32\... C:\...audio.ps1 %1)

También probé:

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\SystemFileAssociations\audio\shell\ChunkAudio\Command]
@="CMD.EXE /C Powershell.exe -File C:\\Users\\Me\Desktop\\petit_program\\PowerShell\\PowerShell_script\\5min_chunk_audio.ps1 %1"

1voto

Louis Puntos 121
<p>Tratar de formular el comando como este:<pre><code></code></pre></p>

0voto

J. Does Puntos 16

Para completar harrymc la respuesta:

Windows Registry Editor Version 5.00

; set the name + icon in the context menu
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\SystemFileAssociations\audio\shell\ChunkAudio]
@="chunk audio"
"Icon"="%SystemRoot%\\System32\\shell32.dll,117"

; run the script
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\SystemFileAssociations\audio\shell\ChunkAudio\Command]
    @="CMD.EXE /K Powershell.exe -File C:\\Users\\Me\\Desktop\\5min_chunk_audio.ps1 \"%1\""

● CMD.EXE /C ejecuta el comando especificado en cadena y, a continuación, finaliza

CMD.EXE /K ejecuta el comando especificado en cadena pero sigue siendo bueno (para depuración)

escriba cmd /? en un cmd de windows para encontrar más argumentos.

%1 es el primer argumento (%2 el segundo...). %1 contiene la ruta de acceso del archivo. Tenemos que citar el arg a utilizar (otherwhise el camino va a ser cortado en el primer espacio). Pero "%1" no trabajo porque necesitamos escapar de la cita, así que escribimos \"%1\".


Bono: Para obtener el arg (la ruta) en el script simplemente usar $arg (es un "Variables Automáticas". Para saber más: Get-Help about_Automatic_Variables)

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: