Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

VBS Script um bestimmte Dateien die älter als x Tage sind und im Namen -xyz- enthalten zu löschen

Frage Microsoft

Mitglied: NeoCrown

NeoCrown (Level 1) - Jetzt verbinden

03.10.2011, aktualisiert 18.10.2012, 3199 Aufrufe, 6 Kommentare

Hallo zusammen

Ich suche schon lange verzweifelt ohne Erfolg ein VBS Script, mit dem ich Dateien aus einem Ordner löschen kann,
die älter als x Tage sind und im Namen ein bestimmten Teil/Wort enthalten zB. *xyz*.
Wenn mir vieleicht jemand ein Beispiel hätte, um dieses Problem zu lösen, wäre ich sehr dankbar.
Ich darf nur ein VBS Skript verwenden, nichts anderes.

Grüsse NeoCrown
Mitglied: bastla
03.10.2011, aktualisiert 18.10.2012
Hallo NeoCrown und willkommen im Forum!

ZB: http://www.administrator.de/forum/l%c3%b6schen-von-alten-dateien-und-ve ...

Grüße
bastla
Bitte warten ..
Mitglied: NeoCrown
04.10.2011 um 08:49 Uhr
Hallo Bastla

Danke für deine Antwort. Leider nützt mir ein Ausschussverfahren nicht viel, da ich etwa 100 Ausschlüsse machen müsste.
Ich will wirklich nur Dateien die in meinem Fall zB. "BOOKINGSave201110030954" heissen löschen, also Wörter die den Teil
"Bookingsave2011" enthalten und älter als ein Tag sind.

Grüsse
Bitte warten ..
Mitglied: bastla
04.10.2011 um 09:24 Uhr
Hallo NeoCrown!

Und die Umkehrung von
If InStr(1, Exclude, Datei.Name & "#", vbTextCompare) = 0 Then
bekommst Du nicht selbst hin (Du hattest ja nur nach einem Beispiel gefragt)?

Im einfachsten Fall wäre das zB
If InStr(1, Datei.Name, "Bookingsave2011", vbTextCompare) <> 0 Then
oder (um nur solche zu "erwischen", bei denen der Suchbegriff am Anfang des Dateinamens steht)
01.
Suche = LCase("Bookingsave2011") 
02.
... 
03.
If LCase(Left(Datei.Name, Len(Suche))) = Suche Then
Beides übrigens ungetestet ...

Grüße
bastla
Bitte warten ..
Mitglied: NeoCrown
04.10.2011 um 11:47 Uhr
Hallo!

Nein ich krieg das nicht hin weil ich keine grosse Ahnung habe von VB Scripts :D
Habe ich vergessen zu erwähnen...

edit:

auf welches Script beziest Du dich überhaupt mit deiner Änderung?

möglicherweise krieg ichs dan hin =)

Grüsse
Bitte warten ..
Mitglied: bastla
04.10.2011 um 22:05 Uhr
Hallo NeoCrown!

Am leichtesten anpassbar sollte diese Version sein:
01.
Set fso = CreateObject("Scripting.FileSystemObject")  
02.
Set WSHShell = WScript.CreateObject("WScript.Shell")  
03.
'On Error Resume Next '## während der Testphase kontraproduktiv ## 
04.
 
05.
' * hier eigenen Bedürfnissen anpassen *  
06.
strOrdnerliste = "C:\Dokumente und Einstellungen\pweberling\Desktop\Ordnerliste.txt"  
07.
strAusschlussliste = "C:\Dokumente und Einstellungen\pweberling\Desktop\Ausschluss.txt"  
08.
Aufheben = 3 'Anzahl der Tage  
09.
' * Ende der Anpassungen *  
10.
 
11.
Set objOrdnerliste = fso.OpenTextFile(strOrdnerliste)  
12.
Verzeichnis = Split(objOrdnerliste.ReadAll, vbCrLF)  
13.
objOrdnerliste.Close  
14.
Set objAusschlussliste = fso.OpenTextFile(strAusschlussliste)  
15.
Exclude = "#" & Replace(objAusschlussliste.ReadAll, vbCrLF, "#") & "#" 
16.
objAusschlussliste.Close  
17.
 
18.
Heute = Date()  
19.
 
20.
For n = 0 To UBound(Verzeichnis)   
21.
    Set Ordner = fso.GetFolder(Verzeichnis(n))  
22.
    DeleteInFolder(Ordner)  
23.
Next  
24.
 
25.
Sub DeleteInFolder(Ordner)  
26.
Set Dateien = Ordner.Files  
27.
' Alle Dateien in diesem Ordner abklappern  
28.
For Each Datei In Dateien  
29.
    If Datei.DateLastModified < (Heute - Aufheben) Then 
30.
        'nur Dateien, deren Name nicht wie ein Eintrag der Ausschlussliste endet 
31.
        '(für exakte Übereinstimmung - außer Groß-/Kleinschreibung - wäre 
32.
        '"#" & Datei.Name & "#" 
33.
        'zu verwenden) 
34.
        If InStr(1, Exclude, Datei.Name & "#", vbTextCompare) = 0 Then 
35.
            On Error Resume Next 
36.
            WScript.Echo "-" &Datei.DateLastModified&" "&Datei.Path 'Datei.Delete 
37.
            If Err And Err <> 70 Then MsgBox "Unerwarteter Fehler (Code=" & Err & ")", vbCritical: WScript.Quit  
38.
            On Error Goto 0  
39.
        End If  
40.
    End If  
41.
Next 
42.
 
43.
'Unterordner abklappern, DeleteInFolder rekursiv aufrufen  
44.
For Each Unter In Ordner.SubFolders 
45.
    'nur Ordner, deren Name nicht wie ein Eintrag der Ausschlussliste endet 
46.
    If InStr(1, Exclude, Unter.Name & "#", vbTextCompare) = 0 Then  
47.
        DeleteInFolder(Unter) 
48.
        If (Unter.SubFolders.Count + Unter.Files.Count) = 0 Then WScript.Echo "--"&Unter.Path 'Unter.Delete 
49.
    End If 
50.
Next  
51.
End Sub
Grüße
bastla
Bitte warten ..
Mitglied: Biber
15.10.2011 um 16:21 Uhr
Moin NeoCrown,

Nachfrage: gibt es denn noch irgendwelche Bewegungen in diesem Beitrag oder kann ich den entsorgen?

Grüße
Biber
Bitte warten ..
Ähnliche Inhalte
VB for Applications
VBS Script zum versenden mehrerer Verknüpfungen zu Dateien per Lotus Notes

Frage von Sentinel87 zum Thema VB for Applications ...

Batch & Shell
gelöst Hilfe Bei einem vbs Script (19)

Frage von Hattori-Hanzo zum Thema Batch & Shell ...

Batch & Shell
Dateien mit fast gleichem Namen per Batch zippen (5)

Frage von tioloco zum Thema Batch & Shell ...

Neue Wissensbeiträge
Heiß diskutierte Inhalte
Firewall
Welche Firewall ? (18)

Frage von Cyberurmel zum Thema Firewall ...

Windows Server
gelöst Einzelnes Windows Update über GPO deinstallieren (16)

Frage von lordofremixes zum Thema Windows Server ...

Windows Server
GPO zum Deinstallieren von Office Update wird nicht ausgeführt (15)

Frage von lordofremixes zum Thema Windows Server ...