Estoy buscando una manera de aplicar un script cmd o powershell a un archivo determinado haciendo clic derecho en el archivo en el explorador de Windows y eligiendo "Aplicar script XYZ".
Un caso de uso sería hacer un archivo protegido contra escritura, por lo que mi archivo por lotes contendría:
attrib +r %filename%
¿Dónde %filename%
está el nombre del archivo en el que hice clic derecho en el explorador?
Un solo archivo funcionaría por ahora, pero me interesaría aplicarlo a varios archivos (seleccionando varios archivos en una carpeta) y también a carpetas enteras (seleccionando la carpeta).
La solución debería funcionar para Windows 10 y, si es posible, también para rutas UNC y Windows 7.
EDITAR: Hasta ahora logré hacer todo excepto las rutas UNC, este ejemplo funciona para archivos (usandoesta fuenteyesta fuente):
Entrada de Registro:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\*\shell\SomeName]
@="NameOfTheMenueItem"
"icon"="someicon.ico"
[HKEY_CLASSES_ROOT\*\shell\SomeName\command]
@="\"X:\\folder\\batchfile.cmd\" \"%1\""
Archivo por lotes:
set filepath=%1
attrib +r %filepath%
Archivo por lotes (para carpetas):
set folderpath=%1
attrib +r %folderpath%\*.*
Problemas restantes:
- Necesito que funcione para UNC-Paths
- devolver la ruta de la carpeta al archivo por lotes sin "" para cambiarlo a
"X:\folderpath\*.*"
(por el momento lo obtengo"X:\folderpath"
como valor de retorno, aunque simplemente agregando\*.*
funciona el resultado"X:\folderpath"\*.*
no se ve muy bien, no estoy seguro si habrá algún problema en algún momento) - crear una protección contra escritura recursiva para todos los archivos y subcarpetas de una carpeta elegida