Prüfung ob Ordner existiert danach löschen

Crowdy

Fuji
Registriert
12.12.07
Beiträge
37
Hallo zusammen,

ich brauch ein Applescript was folgendes bewerkstelligt:

- zum Start 10 Sekunden Pause
danach
- Überprüfung ob Ordner existiert wenn Ja dann löschen
andernfalls ENDE.

Ich hab schon gesucht im Netz und leider nur englische Sachen gefunden mit denen ich nich viel anfangen konnte da mein englisch nicht ausreichend ist. Das habe ich bisher zusammengeschrieben, doch leider funktioniert das so nicht. Weiß jemand woran es liegt? Lösungsvorschläge?

Code:
tell application "Terminal"
	
	do shell script " 

                sleep 5

		if [-d /$USER/mein_pfad/mein_ordner] ;
		then
		rm -r /$USER/mein_pfad/mein_ordner;
		else
		killall Terminal;
		fi "
	
end tell

Danke und Gruß Crowdy
 

Oxy

Antonowka
Registriert
15.03.07
Beiträge
363
Ich habe 0 Ahnung von AppleScript, aber kann es sein das du evtl mit dem Befehl auf den Ordner zugreifst und er nicht gelöscht werden kann, da noch drauf zugegriffen wird ?
 

Crowdy

Fuji
Registriert
12.12.07
Beiträge
37
Ich habe 0 Ahnung von AppleScript, aber kann es sein das du evtl mit dem Befehl auf den Ordner zugreifst und er nicht gelöscht werden kann, da noch drauf zugegriffen wird ?

Hi,

ich habe leider auch gegen 0 Ahnung von AppleScript. Soweit wie ich weiß hab ich AppleScript nur angewiesen ein Shellscript auszuführen. Und über dieses Shellscript möchte ich eben mit der IF-Abfrage prüfen ob es den Ordner gibt, wenn es ihn gibt soll er gelöscht werden. Wenn nicht soll er das Script weiter abarbeiten und den Terminal wieder schließen.
 

Oxy

Antonowka
Registriert
15.03.07
Beiträge
363
Ich kann dir anbieten den C# Code dafür zu geben, dank Mono sollte dies auch auf dem Mac funktionieren ( Allerdings habe ich Mono noch nicht wirklich in Verbindung mit C# genutzt )
 

toc-rox

Weigelts Zinszahler (Rotfranch)
Registriert
15.11.09
Beiträge
247
Hier eine Lösung via Finder:
Code:
-- Ordner in Papierkorb verschieben
set tFolder to "/Users/Klaus/schrott" as POSIX file
tell application "Finder"
	if (tFolder exists) then
		delete tFolder
	end if
end tell
 

Crowdy

Fuji
Registriert
12.12.07
Beiträge
37
Hallo,

super das ist es was ich benötige! Vielen Dank!

Kann mir noch jemand sagen wie ich eine Variable in dem Script von toc-rox benutzen kann also ich mein das:

Code:
set myname_var to do shell script ("whoami")
set tFolder to "/Users/myname_var/schrott" as POSIX file

also das in den Pfad der Variable tFolder dann der aktuell angemeldete Benutzer steht.
 

Crowdy

Fuji
Registriert
12.12.07
Beiträge
37
Probiert hab ich schon:
Code:
set tFolder to "/Users/" & myname_var as text "/schrott" as POSIX file
aber das funktioniert in dem Fall irgendwie nicht
 

Zettt

Doppelter Melonenapfel
Registriert
16.10.05
Beiträge
3.374
Warum muss da myname_var ueberhaupt drin sein? Hast du mehrere Benutzer auf deinem Rechner? Laufen die beiden immer gleichzeitig? Waere es da nicht einfach einfacher *zwei* Skripte zu schreiben?

Ansonsten hilft vielleicht die user domain.
 

Crowdy

Fuji
Registriert
12.12.07
Beiträge
37
Hi,

das Script soll für mehrere Hundert OD Benutzer laufen und bei der Anmeldung starten und dabei mehrere Ordner löschen. Deshalb soll er nach der Authentifizierung einfach überprüfen wer gerade angemeldet ist und dann den jeweiligen Benutzerpfad zum Roaming-Profile anpassen.
 

Zettt

Doppelter Melonenapfel
Registriert
16.10.05
Beiträge
3.374
Also bei mir gehts. Es fehlt bei dem zweiten Codeschnipsel in Posting #7 hier in diesem Thread halt ein zweites &. Ist dir das nicht aufgefallen? Der Editor meckert da doch vor jedem speichern rum und laesst dich gar nicht speichern.

Code:
set myname_var to do shell script ("whoami")
set tFolder to ("/Users/" & myname_var as text) & "/Desktop/schrott" as POSIX file
display dialog tFolder as string

tell application "Finder"
	if (tFolder exists) then
		delete tFolder
	end if
end tell

(Ich waere trotzdem fuer eine Loesung per user domain Variable...aber das bin wahrscheinlich nur ich)

PS: Und einen LaunchAgent mit Shell script bei Login faende ich auch schoener.
 

Crowdy

Fuji
Registriert
12.12.07
Beiträge
37
Hi Zettt,

ja das zweite & hab ich total übersehen. Danke so läuft es. Sorry von Scripting und Programmierung hab ich absolut keine Ahnung. Ich kopier mir meistens nur bisschen was ausm Netz zusammen, wenn ich mal an den Punkt komme das ich was Scriptartiges benötige.

Also in diesem Sinne, vielen Dank nochmal der Thread hier kann als gelöst zu gemacht werden.

Gruß Crowdy
 

fyysh

Schweizer Glockenapfel
Registriert
25.01.10
Beiträge
1.386
könnte man einen dreizelier draus machen...

Code:
try
do shell script "test -d \"$HOME/Desktop/schrott\" && rm -rfv \"$HOME/Desktop/schrott\""
end try
löscht $HOME/Desktop/schrott unwideruflich


Code:
try
do shell script "test -d \"$HOME/Desktop/schrott\" && trash \"$HOME/Desktop/schrott\""
end try
$HOME/Desktop/schrott landet im trash, geht aber glaube ich nur ab snow leo

Code:
try
do shell script "test -d \"$HOME/Desktop/schrott\" && mv -f \"$HOME/Desktop/schrott\" \"$HOME/.Trash/\""
end try
$HOME/Desktop/schrott landet im trash und geht auch ohne trash befehl (den es glaub ich erst ab snowleo gibt), vorausgesetzt .Trash existiert im benutzerprofilordner.