Jump to content

VBS einen bestimmten Ordner suchen und nach Files scannen


Direkt zur Lösung Gelöst von MurdocX,
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Guten Tag Zusammen

 

ich habe ein VB Script gebastelt welches einen Ordner sucht und die darin enthaltenen PDF welche älter als 7 Tage sind löscht.

 

call Recurse (strscanningPath)
    Sub Recurse(strFolderPath)
    Dim objFolder
    Set objFolder = objFSO.GetFolder(strFolderPath)
    Dim objFile
    Dim objSubFolder
    For Each objFile In objFolder.Files        
        'LOG für Ordnerscan kann eingeschalten werden, wenn es zu Scriptproblemen kommt.
        objLog.WriteLine("INFO: Dateien " & objFile.Path)
            'Läuft nur wenn es ein File ist
            If objfolder.name = strSCANNINGFOLDER Then
                'Wenn die Endung ein PDF ist, gehts weiter
                If (LCase(Mid(objFile.Name, InStrRev(objFile.Name, "."))) = ".pdf") Then
                    'Prüfung ob das File älter als 7 Tage ist
                    If DateDiff("d", objfile.DateLastModified, strDate) > 7 = TRUE Then
                    strfilesgeloescht=1
                    WshShell.LogEvent 1, "Loeschungsscript SCANNING: Dateien wurden geprüft und die Dateien welche älter als 7 Tage sind geloescht" & objFile.Path
                    objLog.WriteLine("INFO: Dateien " & objFile.Path & " wurde geloescht")
                    objFSO.DeleteFile(objfile.path)
                    end if
                end if
            End If
    Next
            
    For Each objSubFolder In objFolder.SubFolders
        Call Recurse(objSubFolder.Path)
    Next
    End Sub  

 

Das Script funktioniert soweit ganz gut. Problem ist bei dem Script, dass er alle Folder zuerst durchsucht und nicht gezielt nach dem Folder SCANNING. Ich bräuchte hier noch eine Schlaufe, dass er zuerst alle ORdner mit Scanning sucht und dann deren Inhalt. Vielen Dank für Eure Hilfe. Die Variable strfolderpaht und strscanningpath sind in einem INI File definiert. Hier der Auszug aus dem File:

 

[Loeschen]
scanningPath="\\naphs001\betriebe$\"
scanningfolder="SCANNING"

 

Link zu diesem Kommentar
  • Beste Lösung

Für dein Problem in VBS kann ich Dir leider keine Lösung aufzeigen, jedoch als gute Alternative die Powershell.

 

Spezial 1

Hier werden in einem Befehl die PDF-Dokumente gesucht, alle älteren als 7 Tagen gefiltert und diese Auswahl dann gelöscht.

Get-ChildItem -Path 'LAUFWERK:\Scanning\*' -Include '*.pdf' | Where-Object {$_.LastWriteTime -le $((Get-Date).AddDays(-7))} | Remove-Item -Force

Spezial 2

Du hast eine große Struktur und in den verschiedensten Unterordnern die Scannerverzeichnisse, dann würde das Skript so aussehen:

$Pfade = Get-ChildItem -Path 'DEIN PFAD' -Recurse -Directory

foreach ($AktiverPfad  in $Pfade)
{
    if ($AktiverPfad.Name -like '*Scanning*')
    {
        Get-ChildItem -Path ($AktiverPfad.FullName) -Include '*.pdf' | Where-Object {$_.LastWriteTime -le $((Get-Date).AddDays(-7))} | Remove-Item -Force
    }
}
bearbeitet von MurdocX
Link zu diesem Kommentar

Vielen Dank für die Hilfe manchmal ist man einfach Blind


 

Für dein Problem in VBS kann ich Dir leider keine Lösung aufzeigen, jedoch als gute Alternative die Powershell.

 

Spezial 1

Hier werden in einem Befehl die PDF-Dokumente gesucht, alle älteren als 7 Tagen gefiltert und diese Auswahl dann gelöscht.

Get-ChildItem -Path 'LAUFWERK:\Scanning\*' -Include '*.pdf' | Where-Object {$_.LastWriteTime -le $((Get-Date).AddDays(-7))} | Remove-Item -Force

Spezial 2

Du hast eine große Struktur und in den verschiedensten Unterordnern die Scannerverzeichnisse, dann würde das Skript so aussehen:

$Pfade = Get-ChildItem -Path 'DEIN PFAD' -Recurse -Directory

foreach ($AktiverPfad  in $Pfade)
{
    if ($AktiverPfad.Name -like '*Scanning*')
    {
        Get-ChildItem -Path ($AktiverPfad.FullName) -Include '*.pdf' | Where-Object {$_.LastWriteTime -le $((Get-Date).AddDays(-7))} | Remove-Item -Force
    }
}

Danke Dir es muss in unserem Fall VBS sein, aber das Powershellscript hebe ich mir gerne auf :D

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...