Windows: Cómo agregar una acción de secuencia de comandos por lotes al menú contextual

Windows: Cómo agregar una acción de secuencia de comandos por lotes al menú contextual

Tengo algunos programas que crean archivos temporales o archivos de respaldo o archivos similares que no son importantes. Por ejemplo,GVimpara Windows crea de forma predeterminada un archivo de copia de seguridad en formato filename.txt~.

A veces necesito limpiar un directorio y eliminar todos estos archivos. He creado un archivo .bat simple para esto. Sin embargo, es engorroso tener que iniciar CMD, navegar a la carpeta y ejecutar el script. Sobre todo porque se trata de un script que me gustaría ejecutar con frecuencia en varias carpetas. Y no quiero copiar el script en varias carpetas, ya que sería una pesadilla de mantenimiento.

Entonces, estaba pensando que la mejor solución sería agregar un elemento de menú contextual que me permita ejecutar el script. Para poder hacer clic derecho en una carpeta en el Explorador y hacer clic en Limpiar y luego ejecutar mi script en esta carpeta.

Entonces mi pregunta es: ¿Cómo agrego una acción del menú contextual que ejecuta un script por lotes personalizado?

Respuesta1

Lo probé en Windows XP SP3 con esta clave .reg. No tengo Windows 7 por el momento para probarlo correctamente pero debería ser casi igual.

  1. Abra el bloc de notas y pegue el código que aparece a continuación.
  2. Edite según sus necesidades.
  3. Guardar como MyScript1.reg
  4. Haga doble clic para importar en el registro.
  5. Pruebe haciendo clic derecho en cualquier directorio en Explorer
Editor del Registro de Windows Versión 5.00

[HKEY_CLASSES_ROOT\Directorio\shell\MyScript1]
@="Ejecutar MyScript1"

[HKEY_CLASSES_ROOT\Directorio\shell\MyScript1\command]
@="\"C:\\MyScriptsDirectory\\MyScript1Directory\\MyScript1.bat\" \"%1\""

Respuesta2

De hecho,la respuesta actualno está desactualizado. Intenté exactamente lo mismo en Windows 10 y pude agregar Run Batch scriptal menú contextual de todas las carpetas de Windows.

Este es el contenido de mi script por lotes (no funcionará concaminos UNC):

@ECO APAGADO
Se llamó a ECHO %~n0 con los siguientes argumentos:
ESTABLECER argumentos=%*
SI NO ESTÁ DEFINIDO args IR AL FINAL
ECO %*
:FIN
PAUSA

Los cambios de registro que hice se pueden replicar con este archivo REG:

Editor del Registro de Windows Versión 5.00

[HKEY_CLASSES_ROOT\Directorio\shell\Ejecutar secuencia de comandos por lotes]
@="&Ejecutar secuencia de comandos por lotes"

[HKEY_CLASSES_ROOT\Directorio\shell\Ejecutar script por lotes\comando]
@="\"H:\\BATCH_FILE_PATH\\context-batch.bat\" \"%1\""

Esto solo agrega un elemento de menú contextual para todos los directorios/carpetas en Windows. Si desea que se muestre para todos y cada uno de los archivos, puede usar esto:

Editor del Registro de Windows Versión 5.00

[HKEY_CLASSES_ROOT\*\shell\Ejecutar script]
@="Ejecutar &script"

[HKEY_CLASSES_ROOT\*\shell\Ejecutar script\comando]
@="\"H:\\BATCH_FILE_PATH\\context-batch.bat\" \"%1\""

Alternativamente, puede agregar su secuencia de comandos por lotes a la Send Tolista de elementos creando un acceso directo a su secuencia de comandos por lotes y colocándolo debajo %APPDATA%\Microsoft\Windows\SendTo(o ingresando shell:sendtoen la barra de direcciones)

Si desea que su secuencia de comandos se muestre en el menú contextual que aparece cuando hace clic derecho en el espacio vacío dentro de un directorio (¿fondo del directorio?), puede usar el siguiente archivo REG:

Editor del Registro de Windows Versión 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\Ejecutar secuencia de comandos por lotes]
@="&Ejecutar secuencia de comandos por lotes"
"Icono"="%SystemRoot%\\System32\\shell32.dll,71"

[HKEY_CLASSES_ROOT\Directory\Background\shell\Ejecutar script por lotes\comando]
@="H:\\BATCH_FILE_PATH\\context-batch.bat \"%V\""

No necesitas la "Icon"="%SystemRoot%\\System32\\shell32.dll,71"línea. Simplemente agrega un ícono a su menú contextual que se ve así:

ventanas del icono del menú contextual

Respuesta3

yo recomendariaEditor de programas predeterminadopara esta tarea. Es más fácil de usar y posiblemente más seguro que editar el registro directamente.

Elija el menú contextual ingrese la descripción de la imagen aquí

Seleccione la extensión que desea cambiar. ingrese la descripción de la imagen aquí

Elija Agregar... ingrese la descripción de la imagen aquí

Asigne un título a su comando, busque el archivo por lotes y, opcionalmente, elija un icono para representar su comando. ingrese la descripción de la imagen aquí

Guarde el menú contextual en el registro y listo.

Respuesta4

La solución alternativa que uso en Windows 10 es agregar un script a una de las carpetas en la variable de ruta y luego, cuando esté en la secuencia de uso del explorador:

  • Ctrl + L - para empezar a escribir en la barra de búsqueda.

  • escriba: cmd, luego presione Enter - para iniciar cmd en el directorio actual

  • ejecute su script, escribiendo su nombre de archivo

información relacionada