バッチスクリプト(.bat)で標準のassocコマンドを使用して、ファイルの関連付けを保存、設定、およびリセットできます。
assocコマンドは、たとえばコマンドプロンプト(cmd)で表示および関連付けできます。

コマンドは、ファイル関連付けを設定することもできます。

USBディスク(または他の場所)のルートフォルダーに次の2つの.batファイルを作成できます。これらのバッチファイルは、メモ帳を使用して文字列「assoc」を入力するだけで、引用符と末尾の空白なしで(非常に重要)Enterキーを押さずに作成するprefixという名前のファイルの同じフォルダーに存在する必要があります(そのため、行末がありません)。
最初の.batファイルはmyapps.batを呼び出します。その目的は、古いファイルの関連付けを復元するためにUSBディスクを取り出す前に使用する別のrestore.batファイルを作成した後、新しいファイルの関連付けを割り当てることです。
html、abab、およびhtmのファイルの関連付けをmyprog1.exeなどに設定するmyapps.batの例:
@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:など)をディスク上の他の相対ファイル指定とともに使用することもできます。
1つのファイルの関連付けに対して作業を行う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を実行した場合の結果の例は次のとおりです。
