Ordner bereinigen (Original by jNizM)

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

Best-Code-in-Use
Posts: 184
Joined: 01 Dec 2015, 05:13
Location: Germany

Ordner bereinigen (Original by jNizM)

17 Mar 2017, 05:08

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%
    }
}
Last edited by Best-Code-in-Use on 20 Mar 2017, 04:29, edited 1 time in total.
Greetings Best-Code-in-Use
Rohwedder
Posts: 7644
Joined: 04 Jun 2014, 08:33
Location: Germany

Re: @jNizM - Ordner bereinigen

19 Mar 2017, 04:04

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%
		}
	}
Best-Code-in-Use
Posts: 184
Joined: 01 Dec 2015, 05:13
Location: Germany

Vielen Dank

20 Mar 2017, 03:51

@Rohwedder

Sehr gut vielen Dank, funktioniert einwandfrei... :D
Greetings Best-Code-in-Use
Best-Code-in-Use
Posts: 184
Joined: 01 Dec 2015, 05:13
Location: Germany

verbesserte Version

20 Mar 2017, 05:30

@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%
		}
	}
Greetings Best-Code-in-Use

Return to “Ich brauche Hilfe”

Who is online

Users browsing this forum: No registered users and 62 guests