Como se menciona en los comentarios, puede hacer una entrada de registro que llame a un archivo por lotes para descomprimir y luego eliminar.
He creado un ejemplo que usa 7zip (que necesitará tener instalado). Esto debería funcionar para todos los tipos de archivos compatibles con 7zip.
Puede encontrar el archivo bat y los archivos .reg en esta esencia aquí .
archivo .bat:
set output_dir=%~n1
IF EXIST "%output_dir%\" (
echo "%output_dir%\" already exists, gonna increment the name
set "n=0"
:loop
set /a n+=1
set "output_dir=%output_dir%_%n%"
if exist "%output_dir%" echo "%output_dir%" already exists & goto :loop
)
"C:\Program Files\7-Zip\7z.exe" e %1 -o"%output_dir%\"
IF %ERRORLEVEL% EQU 0 IF EXIST "%output_dir%\" (
echo "%output_dir%\" was created
del %1
) else (
Echo An error was found & pause
)
Ahora el mío es un poco exagerado, incrementará el nombre del archivo si la carpeta extraída ya existe, y NO se eliminará si se produce un error o si no se extrajo el zip.
archivo de registro:
; adds a command to all files to "unzip and delete"
[HKEY_CLASSES_ROOT\*\shell\Unzip and delete\command]
@="\"<PATH TO BAT FILE>\\unzip_and_delete.bat\" \"%1\""
; for the icon
[HKEY_CLASSES_ROOT\*\shell\Unzip and delete]
"icon"="C:\\Program Files\\7-Zip\\7zG.exe"
uso
- Guarde el archivo .bat en algún lugar de su computadora
- agregue la entrada de registro anterior, ya sea manualmente o descargando el archivo .reg y ejecutándolo. (Asegúrese de reemplazar
<PATH TO BAT FILE>
con la ruta a su archivo de batalla "unzip_and_delete.bat")
- al final, debería aparecer en su menú contextual como en la captura de pantalla: https://ibb.co/s96CsMT