Eu fiz algo semelhante em meu escritório, também temos um arquivo de lote herdado que administra a distribuição de licenças para o nosso software. Dependendo de quantos tipos de arquivos você está lidando e se os usa em outros programas, essa solução pode funcionar para você. Para o registro eu nunca tinha ouvido falar dessas ferramentas CMD, mas estou super feliz por eu saber sobre elas agora.
Aqui está o texto original da resposta que encontrei, o link está abaixo:
Use Ftype & Assoc para corrigir isso (e é scriptable).
Use o Assoc para obter o tipo de arquivo
>Assoc .txt
oferece:
.txt = txtfile
Então
>Ftype txtfile=C:\Program Files (x86)\Notepad++\notepad++.exe %1
Depois de conhecer o tipo de arquivo, você pode usar o Ftype para associá-lo a uma ação.
Isso funcionaria para arquivos .php (basta plop-los em um arquivo de lote)
Assoc .php=phpfile
Ftype phpfile="C:\Program Files (x86)\Notepad++\notepad++.exe" %1
E você pode copiar essas linhas para adicionar outros arquivos baseados em texto como você gostaria.
Associar programaticamente as extensões de arquivo ao aplicativo no Windows