Вы можете использовать стандартную команду assoc в пакетном скрипте (.bat) для сохранения, установки и сброса ассоциаций файлов.
Команда assoc может отображаться и связываться, например, в командной строке (cmd):
Команда также может установить файловую ассоциацию:
Вы можете создать следующие два файла .bat в корневой папке на USB-диске (или в другом месте). Эти пакетные файлы требуют наличия в той же папке файла с именем prefix, который вы создаете только один раз, используя блокнот и вводя строку "assoc", без кавычек и с завершающим пробелом и (очень важно), не нажимая Enter (так что это не нет конца строки).
Первый файл .bat мы назовем myapps.bat, и его целью будет назначение новой ассоциации файлов после создания другого файла restore.bat, который вы будете использовать перед извлечением USB-диска для восстановления старых ассоциаций файлов.
Пример myapps.bat, чтобы установить ассоциации файлов html, abab и htm для myprog1.exe и т. Д .:
@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
Переменная %cd%
обозначает текущий каталог, но вы также можете использовать %cd:~0,2%
который даст вам текущий диск (например, G:) вместе с любой другой относительной спецификацией файла на диске.
Файл doassoc.bat, который выполняет работу для одной ассоциации файлов, будет содержать:
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
Пример результата при запуске myapps.bat, за которым следует restore.bat: