In Anlehnung an Daniel Becks Antwort oben werden diese Informationen tatsächlich in der Ressourcengabel der Datei gespeichert. Apple bietet mit den Entwicklertools zwei Dienstprogramme namens "Rez" und "DeRez", mit denen Sie Ressourcengabeln bearbeiten können. Insbesondere können Sie mit Rez einen Ressourcengabel in eine Datei verschieben.
Um die Zuordnung einer einzelnen Datei über die Befehlszeile zu ändern, erstellen Sie zunächst eine Datei des richtigen Typs und ändern Sie die Zuordnung manuell zu der Anwendung, in der sie geöffnet werden soll. Dadurch wird der Ressourcengabel in der Datei erstellt - wenn Sie dies nicht tun. Wenn Sie dies nicht tun, müssen keine Informationen kopiert werden. Ziehen Sie dann die Ressourcengabel mit DeRez wie folgt heraus (vorausgesetzt, Sie verwenden eine Datei foo.txt und die Anwendung, die Sie verwenden möchten, ist Firefox.app).
DeRez foo.txt > foo.r
Dadurch wird eine Datei mit dem Namen foo.r erstellt, bei der es sich um die dekompilierte Ressourcengabelung als Textdatei handelt. Es wird ungefähr so aussehen:
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" /* ................ */
Sie können dies bearbeiten, wenn Sie eines von Grund auf neu erstellen möchten, aber Sie müssen das Format genau richtig einstellen, sonst funktioniert es nicht. Es sind nur hexadezimal codierte Zeichen, die den Pfad zum gewünschten App-Bundle beschreiben und mit einer Null abgeschlossen werden.
Möglicherweise wird die Meldung angezeigt, dass der Ressourcengabel leer und nicht initialisiert ist. Wenn dies der Fall ist, haben Sie die Zuordnung pro Datei in der Quelldatei nicht geändert. Führen Sie dies aus und führen Sie den Befehl DeRez erneut aus.
Sobald Sie dies haben, können Sie dies wie folgt in eine andere Datei verschieben (vorausgesetzt, bar.txt existiert):
Rez foo.r -a -o bar.txt
Dadurch wird bar.txt mit der Ressourcengabel von foo.r. aktualisiert.
Um zu überprüfen, ob es funktioniert hat, gehen Sie wie folgt vor, da weder Rez noch DeRez Fehlermeldungen drucken:
DeRez bar.txt
Sie sollten die gleichen Informationen wie zuvor sehen. Öffnen Sie nach all dem einfach die Datei bar.txt wie gewohnt und sie sollte in der richtigen Anwendung geöffnet werden, nicht in der Standardanwendung.
Um eine Stapeländerung durchzuführen, können Sie, sobald Sie die .r-Datei haben, eine Standard-Platzhaltererweiterung wie die folgende verwenden:
Rez foo.r -a -o *.txt
Damit werden alle Dateien ausgeführt, die mit dem Platzhalter übereinstimmen.
Ich habe dies auf 10.7 getan, aber ich verstehe, dass dies auch auf früheren Maschinen funktioniert.