www.IT-Visions.de-Diskussionsforen (Version 2.1)
(Diese Seite wurde noch nicht auf das neue Layout umgestellt!)


Diese Foren stehen den Lesern unserer Bücher und allen anderen registrieren Benutzern dieser Website zur Verfügung. Wir würden uns freuen, wenn viele Nutzer dieser Website hier nicht nur Fragen stellen, sondern auch die Fragen anderer Nutzer beantworten. Diese Foren sind ein ehrenamtlicher, nicht-kommerzieller, unmoderierter Community-Dienst von www.IT-Visions.de. Wenn Sie kommerzielle Unterstützung für .NET/Scripting/PowerShell suchen, schauen Sie bitte auf unser Support-Angebot und unsere Schulungsangebote für Scripting und Schulungsangebote für .NET.



WSH Blockade!
Autor:  mr_c&b
E-mail:  Antworten bitte nur in das Forum!
Datum:  13.10.2003 16:53:13
Subject:  WSH Blockade!
Bezug zum Buch: 
Message:  Hallo zusammen,

ich habe ein Script geproggt, welches mir Dateien eines Verzeichnisses nach 120 Stunden Dateialter verschieben soll und nach weiteren 120 Stunden vollständig löschen, das ganze wird zur Protokollierung in eine txt geshrieben.
Nun wird aber nur der Inhalt des einem Verzeichnis gelöscht, die Unterverzeichnisse werden von der überprüfung wohl ausgelassen! Kann mir jemand helfen? Anbei das Script:

'*** Anzahl der Dateien im Ordner ermitteln
set fs = CreateObject("Scripting.FileSystemObject")
set ordner = fs.GetFolder("D:\Users\Transfer\")
anz_dateien = ordner.Files.Count
'*** aktuelles Datum bestimmen
akt_datum = (now)

'***Überprüfen, ob die Protokolldatei bereitsexistiert,
'***wenn nicht anlegen
set logdatei = fs.OpenTextFile("D:\_logs\transfer.txt",8,true)


'*** Wenn mindestens eine Datei vorhanden ist
If not anz_dateien = "0" Then
     '*** Jede Datei der Reihe nach überprüfen
     For each datei in ordner.Files
     
          '*** Dateiname auslesen
          name = datei.name
          
          '*** Erstelldatum auslesen, und in Datum und Uhrzeit zerlegen
          Erstelldatum = datei.DateCreated
          
          '*** Überprüfen ob bereits 120 Stunden vergangen sind     
          diff = DateDiff("h",erstelldatum, akt_datum)
          If diff > 120 Then
               '***File löschen
               fs.CopyFile      "D:\Users\Transfer\" & name, "D:\_move\" & name
               fs.DeleteFile "D:\Users\Transfer\" & name
               '***Protokolleintrag erzeugen
               eintrag = akt_datum & vbTab & "Dateiname: " & name & vbTab & "Erstelldatum: " & Erstelldatum & vbTab & "Dateialter (h): " & diff
               logdatei.WriteLine(eintrag)
     End if



     next
     logdatei.Close

End if

'***Überprüfen, ob die Protokolldatei bereitsexistiert,
'***wenn nicht anlegen          
set ordner_move = fs.GetFolder("D:\_move")
anz_move_dateien = ordner_move.Files.Count

set logdatei = fs.OpenTextFile("D:\_logs\movelogs\transfer_del.txt",8,true)          


If not anz_move_dateien = "0" Then

     For each datei in ordner_move.Files
     
          name = datei.name
          
          Erstelldatum = datei.DateCreated
     
          diff = DateDiff("h",erstelldatum, akt_datum)          
          
          If diff >240 Then
          '***File löschen
          fs.DeleteFile "D:\_move\" & name
          '***Protokolleintrag erzeugen          
          move_eintrag = akt_datum & vbTab & "Dateiname: " & name & vbTab & "Erstelldatum :" & Erstelldatum & vbTab & "Dateialter (h):" & diff
          logdatei.WriteLine(move_eintrag)
     
     
     end if
               
     next     
     logdatei.Close     
     

end if

Vielen Dank für jede Hilfe!

Antworten

  Zurück zum Forum



 Klassische Programmierung (Scripting, COM) -- Windows Scripting, VBScript, VB6, u.a.
 WSH Blockade! von mr_c&b  am 13.10.2003 4:53:13 PM


www.IT-Visions.de - Dr. Holger Schwichtenberg / 1998-2019