Dateien aus einem variablen Ordner löschen?

T

Thubo

Aktives Mitglied
Thread Starter
Dabei seit
09.03.2009
Beiträge
199
Reaktionspunkte
21
Hallo zusammen,
folgendes Problem:
Ich arbeite recht viel mit Latex, was dazu führt, dass einfach massig temporäre Dateien entstehen.

Nun habe ich mir ein Skript geschrieben, was in einem Ordner nach den entsprechenden Dateien sucht (was schon gar nicht so einfach ist, weil ich nicht mit einer Suche mehrere Kriterien auswählen kann, sondern für jede Dateisorte eine eigene Suche brauche), diese in den Papierkorb schiebt und mich dann fragt, ob dieser auf entleert werden soll....Soweit so gut.

Ich möchte nun diese Skript aber nicht nur auf diesen einen Ordner anwenden könne, sondern auf jeden x-beliebigen.
Ich stell mir das so vor: Entweder ich zieh den entsprechenden Ordner auf das Skript oder es kommt nach dem Starten erst mal ein Feld, dass mich fragt, welchen Ordner ich reinigen möchte...und ab dann geht es dann weiter wie oben. (Btw: kann ich eine Abfrage einbauen, dass der Papierkorb immer automatisch entleert wird, wenn er leer war vor dem löschen und wenn schon was drin war ich gefragt werde? - das wäre aber nur nebensächlich)

Mir geht es hauptsächlich darum den Ordner auf den die Aktion ausgeführt wird variabel festlegen zu können...leider finde ich weder in irgendwelchen Anleitungen, noch auf Google oder sonst wo was...ich werd noch wahnsinnig...

Ich hoffe ich habe mich klar genug ausgedrückt und es gibt jemanden der mir helfen kann.
Vielen Dank und liebe Grüße
Thubo
 
Poste doch mal das Skript, dann kann man dir weiter helfen.

Eventuell ist set searchFolder to choose Folder etwas für dich
 
Das ist kein Apple Skript, sondern ein Automator Skript...kann ich das irgendwie in Textform exportieren um es hier posten zu können?
 
Dein Workflow in Automator könnte etwa so aussehen:

1. Nach Finder-Objekten fragen:
Typ: Ordner
Auswahl mehrerer Objekte zulassen​

2. Ordnerinhalt abfragen

3. Finder-Objekte filtern:
Hier musst du dann deine Bedingungen definieren, die die zu löschenden Dateien eindeutig identifizieren, z.B.:
Name enthält Dateiname1
Name enthält Dateiname2​

4. AppleScript ausführen:
Code:
on run {input, parameters}
	try
		repeat with delFile in input
			do shell script "rm " & quoted form of POSIX path of delFile --löscht die Dateien endgültig, Dateien I'm Papierkorb bleiben erhalten.
		end repeat
	end try
	return 0
end run
 
Das ist schon mal ziemlich nah dran, an dem was ich will...die Lösung mit dem Apple Skript ist echt super :)

Ich habe nur noch ein Problem: Ich Identifiziere meine Dateien über die Endung. Nun ist es mir leider nicht möglich quasi einen "OR" Operator in die Suche einzubauen:

Ich sage "Finder-Objekte filtern", Beliebige der folgenden Bedingungen werden erfüllt: Dateisuffix enthält lof und das gleiche noch mal für lot.

Wenn ich eine Abfrage nach lot mache, bekomm ich die richtigen Daten, mache ich eine einzelne nach lof, bekomme ich ebenfalls die richtigen Dateien. Frage ich nun nach beidem gleichzeitig gibt er mir nichts mehr aus. Wenn ich es in zwei mal "Finder-Objekte filtern" mache ist mir auch klar warum, weil er die erste Abfrage noch mal filtert, aber wenn ich eine Abfrage mit beiden Bedingungen mache bekomme ich ebenfalls kein Ergebnis mehr....Das ist übrigens auch der Grund, warum ich mir keine "intelligente Suche" eingerichtet habe (das war meine erste Idee).

Gibts irgendwie eine Möglichkeit einen "ODER"-Operator für zwei Bedingungen zu verwenden?
Wenn nicht klar ist, was ich meine mach ich schnell ein paar Screenshots ums zu verdeutlichen :)

Danke und ein schönes Wochenende noch :)
Thubo
 
Das scheint ein Bug der Automator Aktion zu sein. Was bei mir funktioniert ist:

Finder-Objekte filtern:
Beliebige der folgenden Bedingungen werden erfüllt:
- Dateisuffix enthält lot
- Beliebiger Inhalt enthält lof​
 
okay...dann muss ich mal bisserl mehr damit rum spielen ;) ich habe nämlich 7 oder 8 Endungen nach denen ich suchen muss ;)
ggf. mach ich mir für jede Endung eine eigenes Skript und ruf diese skripte dann in einem übergeordneten Skript auf...das sollte ja auch gehen, oder?
 
Dann lohnt es sich vielleicht, das in das AppleScript zu integrieren:

Code:
[FONT="Verdana"][size=2][b]on[/b] [color=#0000FF][b]run[/b][/color] {[color=#3F7F00]input[/color], [color=#3F7F00]parameters[/color]}
	[b]try[/b]
		[b]repeat[/b] [b]with[/b] [color=#3F7F00]delFile[/color] [b]in[/b] [color=#3F7F00]input[/color]
			[b]tell[/b] [color=#0000FF][i]application[/i][/color] "Finder"
				[b]if[/b] [color=#6C04D4]name extension[/color] [b]of[/b] [color=#3F7F00]delFile[/color] [b]is[/b] [b]in[/b] {"lof", "lot"} [b]then[/b] [color=#4C4D4D]--hier kann die Liste mit den Dateiendungen beliebig erweitert werden, z.B. {"lof", "lot", "txt", "rtf"}[/color]
					[color=#0016B0][b]do shell script[/b][/color] "rm " & [color=#6C04D4]quoted form[/color] [b]of[/b] [color=#6C04D4]POSIX path[/color] [b]of[/b] [color=#3F7F00]delFile[/color] [color=#4C4D4D]--löscht die Dateien endgültig, Dateien I'm Papierkorb bleiben erhalten.[/color]
				[b]end[/b] [b]if[/b]
			[b]end[/b] [b]tell[/b]
		[b]end[/b] [b]repeat[/b]
	[b]end[/b] [b]try[/b]
	[b]return[/b] 0
[b]end[/b] [color=#0000FF][b]run[/b][/color][/size][/FONT]

In die Liste kannst du dann beliebig viele Dateiendungen eintragen.
 
Vielen Dank für deine Hilfe :))

Jetzt ist nur noch die Frage an welcher Stelle ich das Skript einbauen muss ;)
(Ja, ich kenn mich mit AppleScript nicht wirklich aus)

Verstehe ich das richtig? Das Skript nimmt Informationen aus "Ordnerinhalt abfragen" und sucht dann noch den Dateiendungen und löscht sie?

Nur leider tut es das nicht...alle Dateien sind noch da, wo sie vorher waren :(
 
Das Skript kommt nach der Aktion Ordnerinhalt abfragen. Nach dem Skript kommt dann keine Aktion mehr. Im Skript musst du alle Endungen in die Liste eintragen. Dann sollte es eigentlich funktionieren.
 
da passiert leider nichts :(
das skript läuft durch ohne Fehlermeldung, die Dateien werden aber nicht gelöscht...
Ich werd mich morgen Abend noch mal damit befassen und mal einen Screen hochladen, wie das nun bei mir aussieht...vllt kannst du mir ja dann weiterhelfen :)
Danke auf jeden Fall schon mal :)
Guten Start in die neue Woche :)
Thubo
 
Zurück
Oben Unten