Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Dateien löschen und dabei bestimmte Dateiendungen ausschließen

Mitglied: speedy4you

speedy4you (Level 1) - Jetzt verbinden

27.03.2008, aktualisiert 01.04.2008, 8068 Aufrufe, 10 Kommentare

Hallo Leute,
ich habe hier ein Script (Alte Dateien nach x Tagen löschen und dabei bestimmte Dateiendungen ausschließen) gefunden das genau das machen soll was ich benötige.

Ich habe da noch einige Fragen:
ich habe versucht das Script mit der Endung .vbs laufen zu lassen, es tut sich aber nix. Welche Dateiendung muss das Script haben?
Fehlt vielleicht bei diesem Script noch etwas?

Wenn ich das richtig verstehe gehören in der Ordnerliste.txt die Verzeichnisse die NICHT durchsucht werden sollen (z.B. C:\Sicherung).
In der Ausschluss.txt gehören die Dateiendungen die NICHT gelöscht werden sollen (z.B. .vbs).
Ist das richtig so??

Besten Dank schon einmal im voraus


hier noch mal das Script:
01.
Set fso = CreateObject("Scripting.FileSystemObject")
02.
Set WSHShell = WScript.CreateObject("WScript.Shell")
03.
On Error Resume Next
04.
 
05.
'* hier eigenen Bedürfnissen anpassen *
06.
 
07.
strOrdnerliste = "D:\Sicherung\Ordnerliste.txt"
08.
strAusschlussliste = "D:\Sicherung\Ausschluss.txt"
09.
 
10.
Set objOrdnerliste = fso.OpenTextFile(strOrdnerliste, 1)
11.
Verzeichnis = Split(objOrdnerliste.ReadAll, vbCrLF)
12.
objOrdnerliste.Close
13.
 
14.
Set objAusschlussliste = fso.OpenTextFile(strAusschlussliste, 1)
15.
If Not objAusschlussliste.AtEndOfStream Then 'falls nicht schon am Dateiende (= Datei ist leer) ...
16.
	Exclude = objAusschlussliste.ReadLine ' ... erste Zeile lesen und speichern ...
17.
Else
18.
	Exclude = "" '... ansonsten gibt es keine Ausnahmen beim Löschen.
19.
End If
20.
 
21.
objAusschlussliste.Close
22.
 
23.
Aufheben = 1 'Anzahl der Tage
24.
 
25.
' * Ende der Anpassungen *
26.
 
27.
Heute = Date()
28.
For n = 0 To UBound(Verzeichnis) 
29.
	Set Ordner = fso.GetFolder(Verzeichnis(n))
30.
	DeleteInFolder(Ordner)
31.
Next
32.
 
33.
Sub DeleteInFolder(Ordner)
34.
Set Dateien = Ordner.Files
35.
' Alle Dateien in diesem Ordner abklappern
36.
For Each Datei In Dateien
37.
	If Datei.DateLastModified < (Heute - Aufheben) Then
38.
		Ext = Mid(Datei.Name, InStrRev(Datei.Name, "."))
39.
		If InStr(Exclude, Ext) = 0 Then
40.
			On Error Resume Next
41.
			Datei.Delete
42.
			If Err And Err <> 70 Then MsgBox "Unerwarteter Fehler (Code=" & Err & ")", vbCritical: WScript.Quit
43.
			On Error Goto 0
44.
		End If
45.
	End If
46.
Next
47.
 
48.
'Unterordner abklappern, DeleteInFolder rekursiv aufrufen
49.
For Each Unter In Ordner.SubFolders
50.
	DeleteInFolder(Unter)
51.
	If (Unter.SubFolders.Count + Unter.Files.Count) = 0 Then Unter.Delete
52.
Next
53.
End Sub
Mitglied: bastla
27.03.2008 um 08:48 Uhr
Hallo speedy4you!

Wenn ich das richtig verstehe gehören in der Ordnerliste.txt die Verzeichnisse die NICHT durchsucht werden sollen (z.B. C:\Sicherung).
Nein, es ist umgekehrt: Die zu durchsuchenden Ordner sind (jeweils einer pro Zeile) in die "Ordnerliste.txt" zu schreiben - mehr zu diesem Script findest Du im zitierten Thread ...

Grüße
bastla

P.S.: Scripts werden besser lesbar dargestellt, wenn Du <code>-Tags verwendest.
Bitte warten ..
Mitglied: speedy4you
27.03.2008 um 09:15 Uhr
Besten Dank für die Antwort,
vielleicht stehe ich etwas auf der "Leitung" aber wie starte ich das Script???
Bitte warten ..
Mitglied: bastla
27.03.2008 um 11:05 Uhr
Hallo speedy4you!

... wie starte ich das Script?
Unter der Annahme, dass Du das Script als "C:\Scripts\DelOld.vbs" gespeichert hättest, entweder per Doppelklick oder (von der Kommandozeile bzw aus einem Batch heraus) mit
01.
cscript //nologo "C:\Scripts\DelOld.vbs"
Um eine Rückmeldung zu erhalten, könntest Du unmittelbar vor der Zeile "Sub DeleteInFolder(Ordner)" zB eine Zeile
01.
WScript.Echo "Fertig."
einbauen.

Grüße
bastla

P.S.: Danke für die Code-Formatierung, allerdings hast Du das "</code>" etwas zu früh gesetzt (sollte erst nach dem letzten "End Sub" folgen) ...
Bitte warten ..
Mitglied: speedy4you
27.03.2008 um 11:26 Uhr
jo, </code> falsch gesetzt und schon korregiert.

Ich führe das Script mit einem doppelclick aus, so wie du es beschrieben hast.
Zu sehen ist aber nix, Dateien werden auch nicht gelöscht. Ich habe deinen Tip mit der Message mal eingebaut und es läuft durch.

Wenn ich aber die beiden .txt Dateien falsch editiert habe kann auch nichts passieren.
In der Ausschluss.txt steht .txt und .log (untereinander).
Inder Ordnerliste.txt habe ich folgendes stehen: "C:\Scripte\LOG" und "C:\Scripte\txt" auch untereinander geschrieben.

Sollte doch eigendlich richtig sein.
Bitte warten ..
Mitglied: speedy4you
27.03.2008 um 11:45 Uhr
So bin schon ein Stückchen weiter. Also es werden alle angegebenen Dateien gelöscht.
Ich möchte aber das alle *0.pdf Dateien nicht gelöscht werden. Es gibt *1.pdf und *2.pdf Dateien.
Wenn ich *0.pdf in der Ausschluss.txt eingebe werden überhaupt keine pdf dateien gelöscht.
Kann mir dabei einer Helfen?

Besten Dank schon mal an alle.
Bitte warten ..
Mitglied: speedy4you
27.03.2008 um 15:39 Uhr
hat vielleicht einer eine Idee wie ich es anstellen kann , dass die *0.pdf nicht gelöscht werden?
Bitte warten ..
Mitglied: bastla
27.03.2008 um 23:27 Uhr
Hallo speedy4you!

Dazu müssen das Script und auch die Ausschlussliste etwas angepasst werden.
01.
Set fso = CreateObject("Scripting.FileSystemObject")
02.
Set WSHShell = WScript.CreateObject("WScript.Shell")
03.
On Error Resume Next
04.
 
05.
' * hier eigenen Bedürfnissen anpassen *
06.
strOrdnerliste = "Z:\Sicherung\Ordnerliste.txt"
07.
strAusschlussliste = "Z:\Sicherung\Ausschluss.txt"
08.
 
09.
Aufheben = 1 'Anzahl der Tage
10.
' * Ende der Anpassungen *
11.
 
12.
Set objOrdnerliste = fso.OpenTextFile(strOrdnerliste, 1)
13.
Verzeichnis = Split(objOrdnerliste.ReadAll, vbCrLF)
14.
objOrdnerliste.Close
15.
 
16.
Set objAusschlussliste = fso.OpenTextFile(strAusschlussliste, 1)
17.
Exclude = Split(objAusschlussliste.ReadAll, vbCrLF)
18.
objAusschlussliste.Close
19.
 
20.
Heute = Date()
21.
For n = 0 To UBound(Verzeichnis) 
22.
	Set Ordner = fso.GetFolder(Verzeichnis(n))
23.
	DeleteInFolder(Ordner)
24.
Next
25.
 
26.
Sub DeleteInFolder(Ordner)
27.
Set Dateien = Ordner.Files
28.
' Alle Dateien in diesem Ordner abklappern
29.
For Each Datei In Dateien
30.
	If Datei.DateLastModified < (Heute - Aufheben) Then
31.
		ToKeep = False
32.
		For Each Ex In Exclude
33.
			If LCase(Right(Datei.Name, Len(Ex))) = LCase(Ex) Then
34.
				ToKeep = True
35.
				Exit For
36.
			End If
37.
		Next
38.
		If Not ToKeep Then
39.
			On Error Resume Next
40.
			Datei.Delete
41.
			If Err And Err <> 70 Then MsgBox "Unerwarteter Fehler (Code=" & Err & ")", vbCritical: WScript.Quit
42.
			On Error Goto 0
43.
		End If
44.
	End If
45.
Next
46.
 
47.
'Unterordner abklappern, DeleteInFolder rekursiv aufrufen
48.
For Each Unter In Ordner.SubFolders
49.
	DeleteInFolder(Unter)
50.
	If (Unter.SubFolders.Count + Unter.Files.Count) = 0 Then Unter.Delete
51.
Next
52.
End Sub
Die "Ausschluss.txt" muss jetzt zeilenweise die auszuschließenden Endungen enthalten, zB:
01.
.doc
02.
.rtf
03.
0.pdf
"Endungen" ist dabei so zu verstehen, dass der letzte Teil des Dateinamens (inkl Extension) geprüft wird.

Grüße
bastla
Bitte warten ..
Mitglied: Biber
31.03.2008 um 07:12 Uhr
Moin speedy4you,

klingt nett, dieses..
Besten Dank schon einmal im voraus
... aber ich kann dann immer nicht erkennen, ob die Lösungsvorschläge geholfen haben.
Gibst Du bitte noch mal Feedback im Forum?

Danke
Biber
Bitte warten ..
Mitglied: speedy4you
31.03.2008 um 07:56 Uhr
Hallo Biber,
ich habe es leider noch nicht ausprobiert, weiss nicht ob ich heute dazu komme.
Spätestens morgen werde ich aber testen und natürlich bekommst Du dann auch eine Rückinfo.

Besten Dank schon einmal im voraus.
Bitte warten ..
Mitglied: speedy4you
01.04.2008 um 10:45 Uhr
Hallo Biber,
es scheint zu funktionieren. Werde es aber noch genauer testen müssen.
Besten Dank für die Hilfe.
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Batch Datei: Dateiendung beibehalten, jedoch Dateiname Datei B wie Dateiname Datei A umbenennen

gelöst Frage von SchniefnaseBatch & Shell8 Kommentare

Hallo zusammen, ich habe eine Frage zu einer Batchdatei. Ich erhalte aus einer externen Verarbeitung stets 2 Dateien, isoliert ...

Microsoft Office

Word bestimmt Sprache selbst

gelöst Frage von honeybeeMicrosoft Office1 Kommentar

Hallo, habe in Word 2016 ein nerviges Problem: Auf meinem Computer (Windows 10) sind zwei Sprachen installiert: Deutsch und ...

Mac OS X

Safari öffnet bestimmt Seite nicht

Frage von tomi93Mac OS X2 Kommentare

Hallo , ich habe an einem iMac bei uns im Unternehmen das Problem das Safari dort eine bestimmte Seite ...

Windows 10

Standartprogramme nach Dateiendung bestimmen

gelöst Frage von tomaschkuWindows 103 Kommentare

Hallo erstmal, Ich habe das Problem, dass z.bzip Dateien beim Doppelklick standardmäßig mit dem Explorer geöffnet werden. Da dieser ...

Neue Wissensbeiträge
Erkennung und -Abwehr
OpenSSH-Backdoor Malware erkennen
Tipp von Frank vor 19 StundenErkennung und -Abwehr

Sicherheitsforscher von Eset haben 21 Malware-Familien untersucht. Die Malware soll Hintertüren via OpenSSH bereitstellen, so dass Angreifer Fernzugriff auf ...

iOS
WatchChat für Whatsapp
Tipp von Criemo vor 4 TageniOS3 Kommentare

Ziemlich coole App für WhatsApp User in Verbindung mit der Apple Watch. Gibts für iOS sowohl als auch für ...

iOS
IOS hat nen Cursor!
Tipp von Criemo vor 4 TageniOS5 Kommentare

Nette Funktion im iOS. iPhone-Mauszeiger aktivieren „Nichts ist nerviger, als bei einem Tippfehler zu versuchen, den iOS-Cursor an die ...

Off Topic
Avengers 4: Endgame - Erster Trailer
Information von Frank vor 6 TagenOff Topic2 Kommentare

Ich weiß es ist Off Topic, aber ich freue mich auf diesen Film und vielleicht geht es anderen hier ...

Heiß diskutierte Inhalte
Windows Server
Einziger Domänencontroller ersetzen - Windows Server 2012R2 - Hostname
Frage von DeRo93Windows Server29 Kommentare

Guten Tag, Leider haben wir einen Domänencontroller dessen Komponentenspeicher defekt ist. Alle Maßnahmen sind da leider fehlgeschlagen. Nun wurde ...

Server-Hardware
WS 2016 Essentials Hardware
Frage von ChefknechtServer-Hardware20 Kommentare

Moin welche Hardware würdet ihr empfehlen? Dell Poweredge HP Proliant Fujitsu Ich bin total konfus was nun nötig ist, ...

Windows Server
Welche Option fürs Windows Server Installations besser
Frage von backitWindows Server20 Kommentare

Hi Zusammen, ich werde unserer AD (SBS 2011) und Exchange 2010 Servern auf neuen physikalischen Server umziehen. ich habe ...

Windows Update
Fehler bei Updates über WSUS
Frage von Hendrik2586Windows Update19 Kommentare

Guten Tag liebe Kolleginen und Kollegen, lang lang ist meine letzte Anfrage her. Hier etwas das mich nun schon ...