Page 1 of 1

Ordner bereinigen (Original by jNizM)

Posted: 17 Mar 2017, 05:08
by Best-Code-in-Use
Hallo,

ich habe hier ein Script von jNizM.
Gäbe es die Möglichkeit eine Art "Gruppenrückfrage" einzubauen, ob tatsächlich alle Dateien gelöscht werden sollen, z.B. mit Listenanzeige der Dateien in einer MsgBox?
Bevor etwas gegen den Baum geht, meinen Tests waren zwar alle erfolgreich, aber Sicher ist Sicher... :D

Code: Select all

#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.

Ordner_Pfad := "C:\Apps"

loop, %Ordner_Pfad%\*.*, 1, 0
{
    today = %A_Now%
    EnvSub, today, %A_LoopFileTimeModified%, days
    if (today > 45)
    {
        if InStr(A_LoopFileAttrib, "D")
            FileRemoveDir, %A_LoopFileLongPath%, 1
        else
            FileDelete, %A_LoopFileLongPath%
    }
}

Re: @jNizM - Ordner bereinigen

Posted: 19 Mar 2017, 04:04
by Rohwedder
Hallo,
warum nicht einfach so?

Code: Select all

#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.

Ordner_Pfad = C:\Apps
Msg =
loop, %Ordner_Pfad%\*.*, 1, 0
{
    today = %A_Now%
    EnvSub, today, %A_LoopFileTimeModified%, days
    if (today > 45)
        Msg .= A_LoopFileLongPath . "`r`n"
}
MsgBox, 4, Alles löschen?, %Msg%
IfMsgBox Yes
	loop, %Ordner_Pfad%\*.*, 1, 0
	{
		today = %A_Now%
		EnvSub, today, %A_LoopFileTimeModified%, days
		if (today > 45)
		{
			if InStr(A_LoopFileAttrib, "D")
				FileRemoveDir, %A_LoopFileLongPath%, 1
			else
				FileDelete, %A_LoopFileLongPath%
		}
	}

Vielen Dank

Posted: 20 Mar 2017, 03:51
by Best-Code-in-Use
@Rohwedder

Sehr gut vielen Dank, funktioniert einwandfrei... :D

verbesserte Version

Posted: 20 Mar 2017, 05:30
by Best-Code-in-Use
@All

Vielleicht kann es Jemand gebrauchen=

Code: Select all

#NoEnv ; Keine Umgebungsvariablen nutzen, beschleunigt die Ausfuehrung
SetWorkingDir %A_ScriptDir%  ; Verwendet das Script-Verzeichnis als Startverzeichnis
#NoTrayIcon ; Das AHK Symbol wird nicht angezeigt
#SingleInstance force ; Das Skript wird bei Neustart ohne Nachfrage ersetzt

; -------------------------------------------------
Ordner_Pfad 				= C:\Apps ; der totale Pfad - alle Dateien in diesem Ordnern werden bereinigt - jedoch keine Unterordner oder die Dateien darin!
Daten_aelter_als_loeschen 	= 30 ; Angabe in Tagen
; -------------------------------------------------

Msg =
loop, %Ordner_Pfad%\*.*, 1, 0
{
    today = %A_Now%
    EnvSub, today, %A_LoopFileTimeModified%, days
    if (today > Daten_aelter_als_loeschen)
        Msg .= A_LoopFileLongPath . "`r`n"
}
MsgBox, 4, Alle nachfolgend angezeigten Dateien endgültig löschen?, %Msg%
IfMsgBox Yes
	loop, %Ordner_Pfad%\*.*, 1, 0
	{
		today = %A_Now%
		EnvSub, today, %A_LoopFileTimeModified%, days
		if (today > Daten_aelter_als_loeschen)
		{
			if InStr(A_LoopFileAttrib, "D")
				FileRemoveDir, %A_LoopFileLongPath%, 1
			else
				FileDelete, %A_LoopFileLongPath%
		}
	}