Vous pouvez utiliser la commande assoc standard dans un script de commandes (.bat) pour enregistrer, définir et réinitialiser les associations de fichiers.
La commande assoc peut s'afficher et s'associer, par exemple, dans une invite de commande (cmd):
La commande peut également définir une association de fichiers:
Vous pouvez créer les deux fichiers .bat suivants dans le dossier racine du disque USB (ou ailleurs). Ces fichiers batch nécessitent la présence dans le même dossier d'un fichier nommé préfixe que vous créez une seule fois à l'aide du bloc-notes et en tapant la chaîne "assoc", sans les guillemets et avec la fin vide et (très important) sans appuyer sur Entrée (ce qui ne fait pas pas de fin de ligne).
Le premier fichier .bat que nous appellerons myapps.bat, et dont le but sera d'attribuer la nouvelle association de fichiers, après avoir créé un autre fichier restore.bat que vous utiliserez avant d'éjecter le disque USB afin de restaurer les anciennes associations de fichiers.
Un exemple myapps.bat pour définir les associations de fichiers html, abab et htm sur 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%
représente le répertoire en cours, mais vous pouvez également utiliser %cd:~0,2%
ce qui vous donnera le disque actuel (par exemple G :) avec toute autre spécification de fichier relative sur le disque.
Le fichier doassoc.bat qui fait le travail pour une association de fichiers contiendra:
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 exemple du résultat lors de l'exécution de myapps.bat suivi de restore.bat est: