Zawsze otwieraj pliki PDF z jednej ścieżki w programie innym niż domyślny

2

Moja domyślna aplikacja PDF to Preview. Teraz mam jeden folder (z podfolderami) z plikami PDF, które chciałbym cały czas otwierać w innym programie. Zasadniczo muszę więc ustawić „program domyślny” dla ograniczonej ścieżki. Niestety opcja „Zawsze otwieraj…” nie jest dostępna (nawet gdyby działał), ponieważ dokumenty w tym folderze zmieniają się dość często.

Czy ktoś wie, czy Automator lub AppleScript może mi w tym pomóc?

Caliguvara
źródło

Odpowiedzi:

1

Korzystasz z Findera do zarządzania plikami?

Przeciągnij wybrany program na pasek narzędzi i upuść go tam :

Dodaj plik lub aplikację: naciśnij i przytrzymaj klawisz Command, a następnie przeciągnij element na pasek narzędzi Findera, aż zobaczysz zielony znak plus.

Teraz dwukrotne kliknięcie pliku PDF spowoduje otwarcie pliku PDF w wersji zapoznawczej.

Możesz wybrać inne pliki PDF, a następnie upuścić je na ikonie paska narzędzi dla wybranego programu.


Bardziej programistycznym sposobem byłoby utworzenie aliasu do

open -a YourAlternativePDFViwer.app 

Następnie wpisz w terminalu swój alias, przeciągnij i upuść wszystkie swoje specjalne pliki PDF na terminalu. Terminal rozszerza następnie wszystkie ścieżki do plików PDF i po dotknięciu Enterpreferowanej przeglądarki powinien otworzyć wszystkie te pliki PDF.

Jeszcze łatwiejszy byłby alias o następującym brzmieniu:

open -a YourAlternativePDFViwer.app /path/to/your/SpecialtyPDFS/*.pdf

Jeśli wymagana jest większa automatyzacja, możesz zajrzeć do folderu Akcje folderów .

W przypadku dwukrotnego kliknięcia AFAIK jest to jedno lub drugie . Ale w zależności od specjalnych cech typu pliku RCDefaultApp może być wart obejrzenia.

LangLangC
źródło
1

Jeśli zapiszesz następujący skrypt w folderze / Users / your username / Library / Workflows / Applications / Folder Actions, będzie można go wybrać w oknie dialogowym konfiguracji działań folderu. Następnie za każdym razem, gdy dodasz plik PDF do wyznaczonego folderu, ustawi domyślną aplikację, do której kiedykolwiek przeglądarka PDF została przypisana w skrypcie.


Zmieniłem nieco scenariusz, aby był bardziej uniwersalny. Teraz łatwiej jest ulepszyć kod, aby działał z różnymi rozszerzeniami plików i różnymi aplikacjami, po prostu zmieniając wartości właściwości, pozostawiając całkowicie nienaruszoną treść skryptu.

Ta wersja będzie kierowana TYLKO NA PDF , bez względu na to, jaki typ pliku zostanie dodany do folderu

property Default_App_To_Open_With1 : alias "Macintosh HD:Applications:Adobe Acrobat Reader DC.app:"
property Default_App_To_Open_With2 : alias "Macintosh HD:Applications:TextEdit.app:"
property Default_App_To_Open_With3 : alias "Macintosh HD:Applications:Preview.app:"

property Default_App : Default_App_To_Open_With2

property name_Extension : "pdf"

on adding folder items to this_folder after receiving dropped_items
    repeat with this_File in dropped_items
        tell application "System Events"
            if name extension of this_File is name_Extension then
                set default application of this_File to Default_App
            end if
        end tell
    end repeat
end adding folder items to
wch1zpink
źródło
1
Zwykle używam tylko domyślnego systemu macOS dla plików PDF, którym oczywiście jest Preview, ale mam kilka różnych folderów, w których zawsze otwierałem pliki PDF w Skim, chociaż ręcznie. Właśnie wdrożyłem twoje rozwiązanie dla tych konkretnych folderów, będąc pustymi, a następnie dodałem do nich pliki PDF. Niezła odpowiedź! +1
użytkownik3439894,
1
BTW Przekodowałem kod w mojej implementacji twojej odpowiedzi, ponieważ zmienił on znaczniki daty / godziny i w trakcie procesu stwierdził, że nie potrzebujesz żadnego z tych open for access ...kodów. set default application ...działa sam bez tego.
user3439894,
Naprawdę? To dziwne, ponieważ uważam, że powód, dla którego umieściłem „Otwórz dla dostępu” i powiązany z nim kod, próbowałem rozwiązać problem, niektóre błędy były zgłaszane przez skrypt. HMM… Wydaje mi się, że zmieniłem coś innego, co rzucało błędy LOL dzięki za heads-up. Właściwie teraz, kiedy o tym myślę, wydaje mi się, że początkowo miałem „Findera” próbującego ustawić domyślną aplikację, zamiast zdarzeń systemowych ... Jeśli dobrze pamiętam, „otwarty na dostęp” był częścią początkowego kodu „Findera” Pracowałem i wydawało się, że działa, więc właśnie zostawiłem tam część kodu
wch1zpink,
FWIW, Oto jak wygląda mój
moduł
1
Kiedy pierwotnie ustawiłem akcję folderu z oryginalnym kodem, zmieniłem znacznik daty / godziny modyfikacji plików i nie chcę, aby znacznik daty / czasu modyfikacji zmienił się od daty utworzenia, chyba że rzeczywista zawartość pliku zmieni się wewnętrznie, a nie atrybuty xattr. Korzystając z GetFileInfo, otrzymuję datę utworzenia, a następnie używam SetFile, aby ustawić datę modyfikacji na datę utworzenia, ponieważ były one przed działaniem folderu. GetFileInfo i SetFile są częścią narzędzi wiersza poleceń dla Xcode.
user3439894,