Você pode usar o comando assoc padrão em um script em lote (.bat) para salvar, definir e redefinir associações de arquivos.
O comando assoc pode exibir e associar, por exemplo, em um prompt de comando (cmd):
O comando também pode definir uma associação de arquivo:
Você pode criar os dois arquivos .bat a seguir na pasta raiz do disco USB (ou em outro local). Esses arquivos em lote exigem a presença na mesma pasta de um arquivo nomeado prefixo que você cria apenas uma vez usando o bloco de notas e digitando a sequência "assoc", sem as aspas e com o final em branco e (muito importante) sem pressionar Enter (para que não tem um fim de linha).
O primeiro arquivo .bat chamaremos myapps.bat e cujo objetivo será atribuir a nova associação de arquivos, depois de criar outro arquivo restore.bat que você usará antes de ejetar o disco USB para restaurar as associações de arquivos antigas.
Um exemplo myapps.bat para definir as associações de arquivos html, abab e htm para 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
A variável %cd%
representa o diretório atual, mas você também pode usar o %cd:~0,2%
que fornecerá o disco atual (por exemplo, G :) junto com qualquer outra especificação de arquivo relativa no disco.
O arquivo doassoc.bat que faz o trabalho para uma associação de arquivos conterá:
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
Um exemplo do resultado ao executar myapps.bat seguido por restore.bat é: