Pegando na resposta de Daniel Beck acima, essas informações são realmente armazenadas na bifurcação de recursos do arquivo. A Apple fornece dois utilitários, chamados "Rez" e "DeRez", com as ferramentas do desenvolvedor, que permitem manipular garfos de recursos. Em particular, você pode enviar uma bifurcação de recursos para um arquivo com Rez.
Para alterar a associação de um único arquivo na linha de comando, primeiro crie um arquivo do tipo certo e altere manualmente sua associação para o aplicativo em que você deseja que ele seja aberto. Isso cria a bifurcação de recursos no arquivo - se você não Para isso, não haverá informações a serem copiadas. Em seguida, retire a bifurcação de recursos com o DeRez, assim (assumindo um arquivo foo.txt e que o aplicativo que você deseja usar é o Firefox.app).
DeRez foo.txt > foo.r
Isso criará um arquivo chamado foo.r, que é a bifurcação de recursos descompilada como um arquivo de texto. Vai parecer algo assim:
data 'usro' (0) {
$"0000 001A 2F41 7070 6C69 6361 7469 6F6E" /* ..../Application */
$"732F 4669 7265 666F 782E 6170 7000 0000" /* s/Firefox.app... */
$"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
Você pode editar isso se quiser criar um a partir do zero, mas precisa obter o formato exatamente correto ou ele não funcionará. São apenas caracteres codificados em hexadecimal que descrevem o caminho para o pacote de aplicativos que você deseja, terminado com zero.
Você pode ver uma mensagem dizendo que a bifurcação de recursos está vazia e não inicializada. Nesse caso, você não alterou a associação por arquivo no arquivo de origem; portanto, faça isso e execute novamente o comando DeRez.
Depois de ter isso, você pode enviá-lo para outro arquivo da seguinte maneira (assumindo que o arquivo bar.txt exista):
Rez foo.r -a -o bar.txt
Isso atualiza o bar.txt no lugar com a bifurcação de recursos de foo.r.
Para verificar se funcionou bem, já que nem Rez nem DeRez imprimem mensagens de erro, faça o seguinte:
DeRez bar.txt
Você deve ver as mesmas informações de antes. Depois de tudo isso, basta abrir o arquivo bar.txt como faria normalmente, e ele deve abrir no aplicativo correto, não no padrão.
Para fazer uma alteração em lote, depois de ter o arquivo .r, você pode usar uma expansão curinga padrão como esta:
Rez foo.r -a -o *.txt
Isso fará todos os arquivos que correspondem ao curinga.
Fiz isso no 10.7, mas entendo que isso também funcione em máquinas anteriores.