Applescript Fehler beim öffnen einer Datei

Ich habe eine Applescript erstellt, das automatisiert eine Datei erstellt und anschließend eine Text in diese Datei erstellt. Bis dahin funktioniert das Script einwandfrei. Abschließend will ich mir den Inhalt der Datei automatisiert anzeigen lassen. Jetzt erscheint folgender Fehler: Das Dokument „2024-11-14_15-28-51.doc“ konnte nicht geöffnet werden. Du hast nicht die erforderlichen Zugriffsrechte.

Die Zugriffsrechte auf das Verzeichnis, in das die Datei gespeichert ist, sind meine Meinung nach korrekt gesetzt, sonst könnte das Script weder die Datei dort erstellen noch einen Text in diese Datei schreiben.

Wo liegt der Fehler?

MacBook Pro (2017 – 2020)

Gepostet am 14. Nov. 2024 15:34

Antworten
Frage gekennzeichnet als Höchstrangige Antwort

Gepostet am 15. Nov. 2024 10:12

Hallo Hoppelhase,


vielen Dank für die Bereitstellung und ebenso ein Dankeschön an testerer für die strukturierte Unterstützung – ich finde die Optimierungen ebenfalls sehr sinnvoll.


Ich empfehle dir, Hoppelhase, zunächst den Dateipfad genau zu überprüfen, um sicherzustellen, dass er korrekt ist und die Datei tatsächlich existiert. Zudem wäre es hilfreich, die Berechtigungen der Datei und des Ordners zu kontrollieren, um sicherzustellen, dass dein Benutzer vollen Zugriff hat. Sollte dies nicht der Fall sein, kannst du die Berechtigungen wie folgt anpassen:

chmod 644 "/Users/xxxxx/Documents/Dateien/Datensicherung/Logs/<DATEINAME>"


Weitere Informationen dazu findest du hier:

> https://chmodcommand.com/chmod-644/


Falls das Problem weiterhin besteht, prüfe bitte, ob sowohl TextEdit als auch dein AppleScript-Skript den vollen Festplattenzugriff in den Systemeinstellungen haben.


Hier ist ein Beispiel, wie du die Datei mit TextEdit öffnen kannst:

try
    tell application "TextEdit"
        open POSIX file logFile
        activate
    end tell
on error errMsg
    display dialog "Fehler beim Öffnen der Datei: " & errMsg buttons {"OK"} default button "OK"
end try


Beste Grüße & viel Erfolg!

10 Antworten
Frage gekennzeichnet als Höchstrangige Antwort

15. Nov. 2024 10:12 als Antwort auf Hoppelhase

Hallo Hoppelhase,


vielen Dank für die Bereitstellung und ebenso ein Dankeschön an testerer für die strukturierte Unterstützung – ich finde die Optimierungen ebenfalls sehr sinnvoll.


Ich empfehle dir, Hoppelhase, zunächst den Dateipfad genau zu überprüfen, um sicherzustellen, dass er korrekt ist und die Datei tatsächlich existiert. Zudem wäre es hilfreich, die Berechtigungen der Datei und des Ordners zu kontrollieren, um sicherzustellen, dass dein Benutzer vollen Zugriff hat. Sollte dies nicht der Fall sein, kannst du die Berechtigungen wie folgt anpassen:

chmod 644 "/Users/xxxxx/Documents/Dateien/Datensicherung/Logs/<DATEINAME>"


Weitere Informationen dazu findest du hier:

> https://chmodcommand.com/chmod-644/


Falls das Problem weiterhin besteht, prüfe bitte, ob sowohl TextEdit als auch dein AppleScript-Skript den vollen Festplattenzugriff in den Systemeinstellungen haben.


Hier ist ein Beispiel, wie du die Datei mit TextEdit öffnen kannst:

try
    tell application "TextEdit"
        open POSIX file logFile
        activate
    end tell
on error errMsg
    display dialog "Fehler beim Öffnen der Datei: " & errMsg buttons {"OK"} default button "OK"
end try


Beste Grüße & viel Erfolg!

15. Nov. 2024 09:15 als Antwort auf Hoppelhase

Moin,


ich habe mir erlaubt, das script lesbarer zu gestalten:

try
	tell application "Finder"
		mount volume "smb://xxx.xxx.x.xxx/Backup" as user name "backup" with password "xxxxxxx"
	end tell
on error errMsg
	display dialog "Fehler beim Verbinden: " & errMsg
end try
try
	tell application "Finder"
		mount volume "smb://xxx.xxx.x.xxx/Cloud" as user name "backup" with password "xxxxxxx"
	end tell
on error errMsg
	display dialog "Fehler beim Verbinden: " & errMsg
end try
-- Definiere Quellordner, Zielordner und Log-Dateipfad
set currentDate to do shell script "date +'%Y-%m-%d'"
set sourceFolder to "/Volumes/Cloud/"
set destinationFolder to "/Volumes/backup/Nov"
set logFile to "/Users/xxxxx/Documents/Dateien/Datensicherung/Logs/" & currentDate & "_monatliche_Sicherung.log"
-- Erstelle den rsync-Befehl
set rsyncCommand to "rsync -avu --delete --log-file=" & quoted form of logFile & " " & quoted form of sourceFolder & " " & quoted form of destinationFolder
-- Führe den rsync-Befehl aus und überwache die Ausgabe
try
	tell application "Terminal"
		do script rsyncCommand -- Startet den rsync-Befehl im Terminal
		activate -- Aktiviert das Terminal
	end tell
	-- Warte, bis der rsync-Befehl abgeschlossen ist, indem wir den Terminal-Prozess überwachen
	delay 2 -- Kurze Verzögerung, um sicherzustellen, dass das Terminal geöffnet wird (optional)
	-- Warten auf den Abschluss des Prozesses im Terminal
	do shell script "while pgrep -x rsync > /dev/null; do sleep 1; done"
	display dialog "Der rsync-Vorgang wurde erfolgreich abgeschlossen!" buttons {"OK"} default button "OK"
on error errMsg
	display dialog "Es gab einen Fehler: " & errMsg buttons {"OK"} default button "OK"
	return
end try
-- Unmount von Volumes
set myCommand to "diskutil unmount /Volumes/Cloud" -- Ersetze diesen Befehl durch deinen gewünschten Befehl
try
	set commandOutput to do shell script myCommand
	display dialog "Volume Cloud wurde erfolgreich unmountet: " & commandOutput buttons {"OK"} default button "OK"
on error errMsg
	display dialog "Fehler beim Unmounten von Cloud: " & errMsg buttons {"OK"} default button "OK"
end try
set myCommand to "diskutil unmount /Volumes/Backup" -- Ersetze diesen Befehl durch deinen gewünschten Befehl
try
	set commandOutput to do shell script myCommand
	display dialog "Volume Backup wurde erfolgreich unmountet: " & commandOutput buttons {"OK"} default button "OK"
on error errMsg
	display dialog "Fehler beim Unmounten von Backup: " & errMsg buttons {"OK"} default button "OK"
end try
tell application "TextEdit"
	try
		open POSIX file logFile
	on error errMsg
		display dialog "Fehler: " & errMsg
	end try
end tell
tell application "Terminal"
	close window 1
end tell
return -- Beendet das Skript hier

15. Nov. 2024 15:31 als Antwort auf Hoppelhase

Kommentiere bitte die letzte Zeile aus, die schließt das Fenster ja wieder...

Mit vorangestellten zwei Minus -- wird aus der Codezeile eine Kommentarzeile

--tell application "Console" to quit

War mir nicht richtig klar, was diese Zeile in deinem Code bezweckte:


tell application "Terminal"

close window 1

end tell


Also wenn dann alles funktioniert, kann diese Zeile auch gelöscht werden.

14. Nov. 2024 19:19 als Antwort auf Hoppelhase

Hallo Hoppelhase,


magst Du uns Dein Script zur Analyse zur Verfügung stellen? Du kannst dafür im Forum-Editor die Funktion „Codeinfügung“ </> nutzen.


Zusätzlich wäre es hilfreich zu prüfen, ob AppleScript und die verwendete App in den Systemeinstellungen den vollen Festplattenzugriff haben.


Wir freuen uns auf Deine Rückmeldung!


Beste Grüße!

15. Nov. 2024 08:54 als Antwort auf PreCognition

Hier ist das Script


try


tell application "Finder"


mount volume "smb://xxx.xxx.x.xxx/Backup" as user name "backup" with password "xxxxxxx"


end tell


on error errMsg


display dialog "Fehler beim Verbinden: " & errMsg


end try




try


tell application "Finder"


mount volume "smb://xxx.xxx.x.xxx/Cloud" as user name "backup" with password "xxxxxxx"


end tell


on error errMsg


display dialog "Fehler beim Verbinden: " & errMsg


end try






-- Definiere Quellordner, Zielordner und Log-Dateipfad




set currentDate to do shell script "date +'%Y-%m-%d'"




set sourceFolder to "/Volumes/Cloud/"


set destinationFolder to "/Volumes/backup/Nov"


set logFile to "/Users/xxxxx/Documents/Dateien/Datensicherung/Logs/" & currentDate & "_monatliche_Sicherung.log"




-- Erstelle den rsync-Befehl




set rsyncCommand to "rsync -avu --delete --log-file=" & quoted form of logFile & " " & quoted form of sourceFolder & " " & quoted form of destinationFolder




-- Führe den rsync-Befehl aus und überwache die Ausgabe




try


tell application "Terminal"


do script rsyncCommand -- Startet den rsync-Befehl im Terminal


activate -- Aktiviert das Terminal


end tell



-- Warte, bis der rsync-Befehl abgeschlossen ist, indem wir den Terminal-Prozess überwachen


delay 2 -- Kurze Verzögerung, um sicherzustellen, dass das Terminal geöffnet wird (optional)



-- Warten auf den Abschluss des Prozesses im Terminal


do shell script "while pgrep -x rsync > /dev/null; do sleep 1; done"



display dialog "Der rsync-Vorgang wurde erfolgreich abgeschlossen!" buttons {"OK"} default button "OK"


on error errMsg


display dialog "Es gab einen Fehler: " & errMsg buttons {"OK"} default button "OK"


return


end try




-- Unmount von Volumes




set myCommand to "diskutil unmount /Volumes/Cloud" -- Ersetze diesen Befehl durch deinen gewünschten Befehl




try


set commandOutput to do shell script myCommand


display dialog "Volume Cloud wurde erfolgreich unmountet: " & commandOutput buttons {"OK"} default button "OK"


on error errMsg


display dialog "Fehler beim Unmounten von Cloud: " & errMsg buttons {"OK"} default button "OK"


end try




set myCommand to "diskutil unmount /Volumes/Backup" -- Ersetze diesen Befehl durch deinen gewünschten Befehl




try


set commandOutput to do shell script myCommand


display dialog "Volume Backup wurde erfolgreich unmountet: " & commandOutput buttons {"OK"} default button "OK"


on error errMsg


display dialog "Fehler beim Unmounten von Backup: " & errMsg buttons {"OK"} default button "OK"



end try




tell application "TextEdit"


try


open POSIX file logFile


on error errMsg


display dialog "Fehler: " & errMsg


end try


end tell




tell application "Terminal"


close window 1


end tell




return -- Beendet das Skript hier



Ich habe noch ein zusätzliche Information:


wenn ich versuchen die erzeugte Datei mit dem Finder zu öffnen, funktioniert es ein wandfrei.


15. Nov. 2024 13:45 als Antwort auf PreCognition

Moin,


logfiles mit der Konsole öffnen, dann klappt es auch mit dem... 😎

aus

tell application "TextEdit"

try

open POSIX file logFile

on error errMsg

display dialog "Fehler: " & errMsg

end try

end tell

tell application "Terminal"

close window 1

end tell


wird

tell application "Console"
	try
		open POSIX file logFile
	on error errMsg
		display dialog "Fehler: " & errMsg
	end try
end tell
tell application "Console" to quit




Applescript Fehler beim öffnen einer Datei

Willkommen in der Apple Support Community
Ein Forum, in dem Apple-Kunden sich gegenseitig mit ihren Produkten helfen. Melde dich mit deinem Apple Account an, um Mitglied zu werden.