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

Dateien erst nach Abgleich mit Archiv löschen

Mitglied: 43344

43344 (Level 1)

25.03.2008, aktualisiert 18.10.2012, 2999 Aufrufe, 5 Kommentare

Tach zusammen,

ich habe folgendes geniale Teil:
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
hier: https://www.administrator.de/forum/alte-dateien-nach-x-tagen-l%c3%b6sche ... gefunden.


Kann man dem Tool noch erklären, dass es die alten Dateien ERST GENAU DANN löschen darf, wenn diese Dateien an einem anderen Ort (Archiv) vorhanden sind ????


Grueße vom Dorf ...
[Edit Biber] Als <code> formatiert. [/Edit]
Mitglied: bastla
25.03.2008, aktualisiert 18.10.2012
Hallo Stylewalker!

Kann man dem Tool noch erklären, dass es die alten Dateien ERST GENAU DANN löschen darf, wenn diese Dateien an einem anderen Ort (Archiv) vorhanden sind ?
Wenn Du dem Tool (oder wenigstens mir) sagen kannst, wo (gleiche Ordnerstruktur?) / wie (nur Namensgleichheit oder zB auch gleiches Änderungsdatum?) im "Archiv" nach der jeweiligen Datei zu suchen ist ...

Abgesehen davon würde sich dafür aber vielleicht eine "Verschiebe"-Lösung (in einem der öfter hier im Forum vorkommenden Beiträge zum Thema "alte Dateien" oder "alte Ordner" - wie etwa "Robocopy - Alte Ordner verschieben" - solltest Du fündig werden) eher anbieten.

Grüße
bastla
Bitte warten ..
Mitglied: 43344
26.03.2008 um 07:06 Uhr
Morgen bastla,

zur Geschichte:

Im Moment zieh ich mit Robocopy die Dateien, die älter sind als xx Tage aus dem zu durchsuchenden Verzeichnis raus, überprüfe mit einem "if exist", ob die Datei im Archiv (auf einer zweiten Festplatte, in gleicher Ordnerstruktur) existiert, bevor diese gelöscht wird. Da die reine Überprüfung, ob die Datei "halt da" ist nicht so prall ist, wäre darüberhinaus eine Überprüfung auf z.B. gleiche Dateigröße/gleiches Änderungsdatum quzasi ideal

Gruß

Style
Bitte warten ..
Mitglied: bastla
26.03.2008 um 15:36 Uhr
Hallo Stylewalker!

... überprüfe mit einem "if exist" ...
"fc /b" wäre noch genauer als der Vergleich hinsichtlich Größe / Datum ...

Grüße
bastla
Bitte warten ..
Mitglied: 43344
31.03.2008 um 06:19 Uhr
Hast natürlich recht, funktioniert .... aber nur mal interessehalber: wie würde das mit VB aussehen???
Bitte warten ..
Mitglied: bastla
31.03.2008 um 07:46 Uhr
Hallo Stylewalker!

Da VBS keinen zu "fc" vergleichbaren Befehl kennt, könntest Du, wie oben schon angemerkt, Dateidatum und zB auch -größe vergleichen ("File.DateLastModified", "File.Size")oder trotzdem "fc" verwenden (ungetestete Skizze):
01.
If Not fc("D:\Datei1.doc", "E:\Datei1.doc") Then 
02.
	'Dateien sind unterschiedlich ... 
03.
End If 
04.
 
05.
Function fc(File1, File2) 
06.
Set objShell = CreateObject("WScript.Shell") 
07.
Set objExec = objShell.Exec("fc /b " & Chr(34) & File1 & Chr(34) & " " & Chr(34) & File2 & Chr(34)) 
08.
strResults = LCase(objExec.StdOut.ReadAll) 
09.
If InStr(strResults, "fc: keine unterschiede gefunden") Then 
10.
	fc = True 
11.
Else 
12.
	fc = False 
13.
End If 
14.
End Function
Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Abgleichen von dem Änderungsdatum einer .txt Datei

gelöst Frage von MelmackerBatch & Shell6 Kommentare

Hallo erst mal an alle die sich meiner Frage widmen, Ich bin gerade dabei ein Batch Spiel zu erstellen ...

Batch & Shell

Dateitypen aus Archiven löschen via Batch!

Frage von Nightowl71Batch & Shell5 Kommentare

hallo meine freunde! ich möchte bestimmte dateitypen vll an hand einer *.txt aus archiven via batch löschen! was ich ...

Batch & Shell

Per Batch erste Zeile aus CSV Dateien löschen

gelöst Frage von sirOneBatch & Shell15 Kommentare

Hallo zusammen! Ich suche ein Batch Script, mit dem ich aus sämtlichen CSV Dateien in einem Unterordner die erste ...

Batch & Shell

Mit batch die erste Zeile aus txt Dateien löschen

gelöst Frage von SuddenrageBatch & Shell8 Kommentare

Hallo, ich brauche Hilfe bei einem Problem das ich derzeit habe. In einem Verzeichnis befinden sich mehrere Textdateien mit ...

Neue Wissensbeiträge
Windows 10

Blackscreen nach dem Update von 1809 auf 1809 wenn der Rechner aus dem Standby gestartet wird

Tipp von FSX2010 vor 22 StundenWindows 104 Kommentare

Habt ihr den Samsung Treiber "Samsung_NVM_Express_Driver_3.0" installiert sollte dieser für 1809 deinstalliert werden da dieser nicht kompatibel ist. Der ...

Utilities
Teamviewer 14 Verbindungsprobleme mit Proxy
Tipp von PeterleB vor 2 TagenUtilities

Nach dem Umstieg von Version 13 auf 14 wollte sich TV nicht mehr mit dem Netz verbinden, ignorierte offenbar ...

Administrator.de Feedback
Unsere Datenbank wurde umgestellt
Information von Frank vor 2 TagenAdministrator.de Feedback5 Kommentare

Hallo User, ich habe in der Nacht unsere Datenbank umgestellt. D.h. neue Version (MySQL 8) und andere Örtlichkeit. Sollte ...

Sonstige Systeme
Es war einmal ein BeOS - Wer erinnert sich noch?
Information von BassFishFox vor 4 TagenSonstige Systeme8 Kommentare

Hallo, Bin gerade ueber Haiku gestolpert, von dessen Existenz als "Nachfolger des BeOS" ich wusste nur mich nie wirklich ...

Heiß diskutierte Inhalte
Router & Routing
Dediziertes ISP -Routing
gelöst Frage von niLuxxRouter & Routing13 Kommentare

Liebe Community, Ich hätte eine kurze Frage an euch. Durch verschiedene Umstände kann es nun sein, dass sich zwei ...

Monitoring
WMI Problem bei PRTG
Frage von justInsaneMonitoring12 Kommentare

Hallo zusammen, ich bin zur Zeit dabei, das PRTG Monitoring Tool auszutesten. Ich habe das ganze nun grob konfiguriert ...

Samba
Linux Server und Windows Linux Client
gelöst Frage von 137898Samba12 Kommentare

Hallo, ich bräuchte dringend bei der Aufgabe etwas Hilfe. Die Firma XYZ besteht auf zwei Abteilungen Logistik und Technik ...

Webbrowser
Proxy-Zugangsdaten in Firefox hinterlegen
Frage von SebastianGSWebbrowser10 Kommentare

Hallo zusammen, kennt jemand von Euch aktuell eine Möglichkeit die Proxy-Zugangsdaten im Firefox (Vers. 63.0.3 - 64-Bit) zu hinterlegen, ...