Prüfung ob Ordner existiert danach löschen

Dieses Thema im Forum "AppleScript" wurde erstellt von Crowdy, 30.06.10.

  1. Crowdy

    Crowdy Fuji

    Dabei seit:
    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
     
  2. Oxy

    Oxy Antonowka

    Dabei seit:
    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 ?
     
  3. Crowdy

    Crowdy Fuji

    Dabei seit:
    12.12.07
    Beiträge:
    37
    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.
     
  4. Oxy

    Oxy Antonowka

    Dabei seit:
    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 )
     
  5. toc-rox

    toc-rox Weigelts Zinszahler (Rotfranch)

    Dabei seit:
    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
     
  6. Crowdy

    Crowdy Fuji

    Dabei seit:
    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.
     
  7. Crowdy

    Crowdy Fuji

    Dabei seit:
    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
     
  8. Zettt

    Zettt Doppelter Melonenapfel

    Dabei seit:
    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.
     
  9. Crowdy

    Crowdy Fuji

    Dabei seit:
    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.
     
  10. Zettt

    Zettt Doppelter Melonenapfel

    Dabei seit:
    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.
     
  11. Crowdy

    Crowdy Fuji

    Dabei seit:
    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
     
  12. fyysh

    fyysh Schweizer Glockenapfel

    Dabei seit:
    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.