Puede usar el comando assoc estándar en un script por lotes (.bat) para guardar, establecer y restablecer asociaciones de archivos.
El comando assoc puede mostrar y asociar, por ejemplo, en un Símbolo del sistema (cmd):
El comando también puede establecer una asociación de archivos:
Puede crear los siguientes dos archivos .bat en la carpeta raíz del disco USB (o en otro lugar). Estos archivos por lotes requieren la presencia en la misma carpeta de un archivo llamado prefijo que crea solo una vez usando el bloc de notas y escribiendo la cadena "assoc", sin las comillas y con el final en blanco y (muy importante) sin presionar Enter (por lo que no no tiene un final de línea).
El primer archivo .bat lo llamaremos myapps.bat, y cuyo propósito será asignar la nueva asociación de archivos, después de crear otro archivo restore.bat que usará antes de expulsar el disco USB para restaurar las antiguas asociaciones de archivos.
Un ejemplo de myapps.bat para establecer las asociaciones de archivos de html, abab y htm en myprog1.exe, etc.
@echo off
echo @echo off >restore.bat
cmd /q /c doassoc html "%cd%\myprog1.exe"
cmd /q /c doassoc abab "%cd%\myprog2.exe"
cmd /q /c doassoc htm "%cd%\myprog3.exe"
del ftemp1
del ftemp
La variable %cd%
representa el directorio actual, pero también puede usar el %cd:~0,2%
que le dará el disco actual (por ejemplo, G :) junto con cualquier otra especificación de archivo relativa en el disco.
El archivo doassoc.bat que hace el trabajo para una asociación de archivo contendrá:
echo assoc .%1= >ftemp1
assoc .%1 >nul
IF %ERRORLEVEL% NEQ 0 goto notfound
assoc .%1 >ftemp
copy /b /y prefix+ftemp ftemp1 >nul
:notfound
copy /b /y restore.bat+ftemp1 restore.bat >nul
assoc .%1=%2
Un ejemplo del resultado cuando se ejecuta myapps.bat seguido de restore.bat es: