Spędziłem dzień, przeprowadzając kilka badań i prób skopiowania pliku znajdującego się w aplikacji AppleScript do głównego katalogu obsługi aplikacji ( hdd -> Library -> Application Support
). Początkowo myślałem, że to problem z wywołaniem do shell script
a administrator privileges
jednak z jakiegoś powodu, jeśli mam plik znajdujący się w aplikacji AppleScript staram się nazwać ten plik, aby być dodane do obsługi aplikacji, na przykład:
set foo to "Macintosh HD/Users/vader/someapp.app/Contents/Resources/Scripts/foobar.txt"
set bar to "Macintosh HD/Library/Application Support/"
do shell script "cp " & (quoted form of foo) & space & (quoted form of bar) with administrator privileges
Sprowadziłem to do podstawowej formy, jeśli chodzi o ścieżkę folderu i ścieżkę pliku, ale po uruchomieniu powyższego pojawia się komunikat o błędzie:
cp: Macintosh HD / Users / vader / someapp.app / Contents / Resources / Scripts / foobar.txt: Brak takiego pliku lub katalogu
Mogę zwrócić wartość true, że plik istnieje w aplikacji za pomocą:
set foobar to POSIX path of (path to resource "foobar.txt" in directory "Scripts")
if not (exists foobar) then
return false
else
return true
end if
Próbowałem tego z:
tell application "Finder" to duplicate file (foo) to folder (bar)
ale to też nie działało.
Sprawdź, kiedy próbowałem usunąć plik po ręcznym dodaniu go (tak, mam uprawnienia administratora na moim urządzeniu):
Przebadałem kilka obszarów, aby zobaczyć, jak wdrożyć monitowanie o uprawnienia przy użyciu, administrator privileges
ale bez powodzenia:
- Nie można usunąć katalogu za pomocą AppleScript
- AppleScript: dopasuj i usuń pliki w folderze
- Automatycznie usuwaj foldery tymczasowe ~ / Library / Application Support
- Usuń foldery, jeśli istnieją i usuń
- Applescript czy shellscript, aby usunąć plik konfiguracyjny?
- Usuń pliki za pomocą AppleScript, aby odzyskać kosz lub na stałe
Oto następujące próby, które próbowałem:
Zdarzenia systemowe AppleScript:
tell application "System Events" to delete file appWithPath
wykonaj próby powłoki:
próba 1
do shell script "rm -f " & appNamewithQuotedFormPath with administrator privileges
próba 2
do shell script "find " & quotedPathToDirectory & " -name \"" & applicationName & "\" -type f -delete" with administrator privileges
To nadal nie działa i sprawdziłem za pomocą:
do shell script "echo " & appNamewithQuotedFormPath with administrator privileges
Po zagłębieniu się w edytor skryptów odkryłem, że dostaję, -10004 error
więc zbadałem:
więc przeniosłem dodawanie i usuwanie pliku z obsługi aplikacji do modułu obsługi, który nie miał bloku próbnego, ale wciąż nic.
Myśląc, że może to być problem z używanymi uprawnieniami, wypróbowałem wszystkie następujące parametry używane z Scripting Additions
:
W jaki sposób w aplikacji AppleScript mogę dodawać i usuwać plik istniejący w aplikacji do głównego katalogu obsługi aplikacji?
EDYTOWAĆ:
Po dalszych testach usunąłem użycie Macintosh HD
i do shell script
działałoby, którego nie rozumiem, dlaczego spowodowałoby to awarię skryptu. Dlaczego dodanie Macintosh HD
do ścieżki spowodowałoby błąd skryptu?
źródło