Jump to content

VBS-Skript: Dateien verschieben, die älter als 1 Woche alt sind


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

Empfohlene Beiträge

Hab eins, dass Dateien, die älter als X Stunden sind, verschiebt. Kann man aber leicht anpassen, denke ich ;)

 

'Script verschiebt alle Dateien, die älter als lng_timelag Stunden sind, von str_source nach str_dest

Dim fso, folder

str_source = "F:\archive_queue\"
str_dest = "F:\archive\"
lng_timelag = 5	'Zeit in Stunden

Set fso = CreateObject("scripting.FileSystemObject")
Set folder=fso.GetFolder(str_source)

for each file in folder.Files
 if (Now()-file.datelastmodified)*24 > lng_timelag then
   fso.MoveFile file.Path, str_dest
 end if
next

Link zu diesem Kommentar

Vorsicht mit automatischen Löschaktionen!!!

 

Ich habe hier ein Script aus dem Buch "Scripting für Administratoren" von Dr. Tobias Weltner, welches ich leicht modifiziert habe.

Das Script löscht alle Dateien im Tempverzeichnis, die älter als 2 Tage sind.

 

Code folgt, Datei ist angehängt, Dateinamenserweiterung ".txt" entfernen...

 

 

' (C) 2000 by Dr. Tobias Weltner
' MSPress: "Scripting für Administratoren"
' modified by M.Kafurke

'WICHTIGER HINWEIS:
'Das Abändern des Pfades für den zu löschenden Ordner kann Katastrophale Datenverluste auslösen!
'Insbesondere auf C:\ sollte man NIEMALS automatisierte Löschungen vornehmen.
'Wenn z.B. die Datei NTLDR älteren Datums ist, wird diese automatisch gelöscht, 
'ebenso boot.ini und weitere wichtige Systemdateien!!!

msg = "Kurzbeschreibung:" & vbCr & "Dieses Skript entfernt alle Dateien aus dem TEMP-Verzeichnis, die älter als 2 Tage sind."&vbcr&"Das Skript startet erst im Testmodus und löscht nicht wirklich."&vbcr&"Erst wenn Sie die Variable testlauf=false setzen, wird tatsächlich gelöscht." & vbCr & vbCr & "Beachten Sie, dass automatische Löschaktionen katastrophale Folgen haben können" & vbcr & vbcr & "Wollen Sie das Skript jetzt ausführen?"
antwort = MsgBox(msg, vbYesNo + vbQuestion,"Script ausführen?")
if antwort = vbNo then
 MsgBox "Abbruch durch Benutzer...", vbExclamation, "Abbruch!"
 WScript.Quit
end if
rep_delete = 0
rep_notdelete = 0
rep_error = 0
rep_clean = 0
rep_folder = 0
rep_debug = ""

' dies auf false setzen, wenn wirklich gelöscht werden soll!
testlauf = True

' alle TEMP-Dateien löschen, die älter sind als 2 Tage
CleanTemp 2
list = "Aufräumaktion TEMP-Ordner:" & vbCr & vbCr
list = list & rep_delete & " Dateien gelöscht." & vbCr
list = list & rep_notdelete & " Dateien nicht gelöscht, weil sie jünger als das Limit waren." _
  & vbCr
list = list & rep_error & " Dateien nicht gelöscht, weil Datum nicht ermittelbar." & vbCr
list = list & rep_folder & " Ordner gelöscht." & vbCr
If rep_clean>0 Then rep_clean = rep_clean / 1024^2
list = list & FormatNumber(rep_clean,1) & " MB Speicherplatz freigegeben."



MsgBox list, vbInformation
if testlauf=true then WScript.Echo rep_debug

Sub CleanTemp(alter)
  'SYS: Microsoft (r) Script Runtime
Set fs = CreateObject("Scripting.FileSystemObject")

  ' extrem wichtig: hier wird TEMP-Ordner geöffnet
  ' und gesamter Inhalt gelöscht. Geben Sie hier den falschen
  ' Ordner an, dann Katastrophe perfekt!
  Set temp = fs.GetSpecialFolder(2)


  ' deshalb zusätzlicher Test:
  temppath = LCase(temp.Name)
  If Not (InStr(temppath, "temp")>0 Or InStr(temppath, "tmp")>0) Then
     MsgBox "ACHTUNG! PRÜFEN SIE, OB DER TEMP-ORDNER ANGEGEBEN WURDE!"
     WScript.Quit
  End If


  DeleteAll temp, alter
End Sub

Sub DeleteAll(folderobj, alter)
  For each subfolder in folderobj.SubFolders
     DeleteAll subfolder, alter
  Next

  For each file in folderobj.Files
     On Error Resume Next
     datum = file.DateLastModified
     ok = (Err.number = 0)
     On Error Goto 0

     If ok Then
        filealter = DateDiff("d", datum, Date)
        If filealter>alter Then
           rep_delete = rep_delete + 1
           rep_clean = rep_clean + file.Size
           If testlauf = False Then
              file.Delete True
           Else
              rep_debug = rep_debug & file.Path & vbCr
           End If

        Else
           rep_notdelete = rep_notdelete + 1
        End If
     Else
        rep_error = rep_error + 1
     End If
  Next
  If folderobj.Files.Count = 0 And folderobj.SubFolders.Count = 0 Then
     If testlauf = False Then
        folderobj.Delete True
     Else
        rep_debug = rep_debug & folderobj.Path & vbCr
     End If
     rep_folder = rep_folder + 1
  End If
End Sub

Delete_Tempfiles_older_then_2_Days.vbs.txt

Link zu diesem Kommentar

hi leute,

 

bin leider kein guter vbscriptler :-(

wie muss ich dieses script abändern, damit:

- alle dateien die älter als 30 tage sind gelöscht werden?

- anstelle von %TEMP% würde ich gerne die ordner C:\TEMP1 und C:\TEMP2 durchsuchen

- unterordner sollten nicht gelöscht werden, lediglich deren inhalt

 

vielen dank für eure hilfe!

waggal

Link zu diesem Kommentar
hi leute,

 

bin leider kein guter vbscriptler :-(

wie muss ich dieses script abändern, damit:

- alle dateien die älter als 30 tage sind gelöscht werden?

- anstelle von %TEMP% würde ich gerne die ordner C:\TEMP1 und C:\TEMP2 durchsuchen

- unterordner sollten nicht gelöscht werden, lediglich deren inhalt

 

vielen dank für eure hilfe!

waggal

 

--> cleantemp 2 abändern in cleantemp 30

--> Set temp = fs.GetSpecialFolder(2) abändern in Set temp = C:\TEMP1 (bzw C:\TEMP2)

--> Weiß ich auf die Schnelle auch nicht...

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...