Applescript: Wie öffne ich eine Datei mit dem Standardprogramm?

8

In einem AppleScript erhalte ich einen Dateipfad, den ich öffnen muss.

Der Dateipfad hat das Format " /Users/xxx/my/file/to/open.xyz ".

Ich möchte es mit dem Standardprogramm öffnen. Wenn es ein AVI ist, muss ich es mit einem Videoprogramm öffnen, wenn es ein xls ist, mit Excel, ...

Ich habe mehrere Dinge ohne Erfolg ausprobiert:

%Vor%

- & gt; Ich erhalte den Fehler 1728 und sage mir, dass er das Dokument nicht erhalten konnte

%Vor%

- & gt; Das gleiche hier

%Vor%

- & gt; Das gleiche hier

Ich bin mir sicher, dass die Datei existiert, weil ich das vor dieser Codeausführung mache:

%Vor%

Ich kann das syntax open.xyz von to nicht verwenden ... weil ich das als Parameter empfange.

Bitte helfen Sie mir verzweifelt: '(

Antwort : Basierend auf den Antworten, habe ich Folgendes:

%Vor%     
J4N 12.04.2012, 15:22
quelle

2 Antworten

14

Ihr Problem ist hier zweifach:

  1. Ihr Pfad ist in der POSIX-Notation, die AppleScript nicht für ein alias oder Datei -Objekt erzwingen kann, das für den Finder akzeptabel ist, da diese nur implizit aus Pfadzeichenfolgen in erstellt werden HFS-Notation ( Users:xxx:my:file:to:open.xyz ). Wenn Sie Ihren Pfad explizit als POSIX-Datei deklarieren, wird dies gelöst. Allerdings
  2. Ihr Aufruf des Finder-Präfixes document an den Pfad, aber das AppleScript-Wörterbuch von Finder enthält keinen Dokument -Objekttyp (es gibt eine Dokumentdatei Objekt, aber es ist ein Kind von Finder item , das in diesem Aufruf nicht erstellt werden kann. Durch das Entfernen dieses Teils wird das Problem behoben.

TL; DR: Die folgende Zeile öffnet eine Datei, die über einen POSIX-Pfad im Standardprogramm ohne Rückgriff auf die Shell übergeben wird:

%Vor%

Vorbehalt: Dies ist die einfachste Lösung, aber es funktioniert nur für qualifizierte POSIX-Pfade (d. h. diejenigen, die mit / beginnen), wie der in der Frage. Behandeln Sie relative (d. H. Pfade beginnend mit ~ , . oder .. ) OTOH benötigt entweder die AppleScript-ObjectiveC API (nicht gerade trivial) oder die Shell (viel Spaß beim Zitieren).

    
kopischke 12.04.2012, 22:12
quelle
0

Versuchen:

%Vor%     
adayzdone 12.04.2012 15:39
quelle

Tags und Links