VBS Script welche eine Logdatei schreibt !

25/05/2009 - 15:03 von MarkusLang | Report spam
Hallo

leider bin ich ein absoluter anfànger und habe mir was zusammen
gebastelt
was auch làuft !

Nun möchte ich aber noch eine log Datei geschrieben bekommen !
In der alle kopierten dateien hineingeschrieben wurden !
LOG datei soll nach z.b : c:\log geschrieben werden !

Kann mir da jemand helfen ?

Danke und Gruss im vorraus

MArkus


Set objNet = CreateObject("WScript.NetWork")
set fso1=createobject("Scripting.FileSystemObject")

dim fso1
dim fil1


Set fil1 = fso1.Getfolder("C:\test")
fil1.copy ("c:\test1")

set fso1=nothing
set fil1=nothing

' Beginnt ab hier mit dem kopieren !

msgbox "COPY done"

dim fso
dim fld
dim fil
dim sfld
dim dtdatum

set fso=createobject("Scripting.FileSystemObject")
set fld=fso.getfolder("c:\test")

dtdatum=now

for each fil in fld.Files
if fil.datelastmodified < dateadd("d",-30,dtdatum) then
fil.delete
end if
next

for each sfld in fld.subfolders
call unterordner(sfld, dtdatum)
next

set fld=nothing
set fso=nothing


function Unterordner(sfld, dtdatum)

dim fso
dim fld
dim fil

set fso=createobject("Scripting.FileSystemObject")
set fld=fso.getfolder(sfld)

for each fil in fld.files
if fil.datelastmodified < dateadd("d",-30,dtdatum) then
fil.delete

end if
next

for each sfld in fld.subfolders
call unterordner(sfld, dtdatum)
next


set sfld=nothing
set fld=nothing
set fso=nothing

end function
 

Lesen sie die antworten

#1 Pegasus [MVP]
25/05/2009 - 17:06 | Warnen spam
"MarkusLang" wrote in message
news:
Hallo

leider bin ich ein absoluter anfànger und habe mir was zusammen
gebastelt
was auch làuft !

Nun möchte ich aber noch eine log Datei geschrieben bekommen !
In der alle kopierten dateien hineingeschrieben wurden !
LOG datei soll nach z.b : c:\log geschrieben werden !

Kann mir da jemand helfen ?

Danke und Gruss im vorraus

MArkus


Set objNet = CreateObject("WScript.NetWork")
set fso1=createobject("Scripting.FileSystemObject")

dim fso1
dim fil1


Set fil1 = fso1.Getfolder("C:\test")
fil1.copy ("c:\test1")

set fso1=nothing
set fil1=nothing

' Beginnt ab hier mit dem kopieren !

msgbox "COPY done"

dim fso
dim fld
dim fil
dim sfld
dim dtdatum

set fso=createobject("Scripting.FileSystemObject")
set fld=fso.getfolder("c:\test")

dtdatum=now

for each fil in fld.Files
if fil.datelastmodified < dateadd("d",-30,dtdatum) then
fil.delete
end if
next

for each sfld in fld.subfolders
call unterordner(sfld, dtdatum)
next

set fld=nothing
set fso=nothing


function Unterordner(sfld, dtdatum)

dim fso
dim fld
dim fil

set fso=createobject("Scripting.FileSystemObject")
set fld=fso.getfolder(sfld)

for each fil in fld.files
if fil.datelastmodified < dateadd("d",-30,dtdatum) then
fil.delete

end if
next

for each sfld in fld.subfolders
call unterordner(sfld, dtdatum)
next


set sfld=nothing
set fld=nothing
set fso=nothing

end function

==
Du schreibst "Nun möchte ich aber noch eine log Datei geschrieben bekommen !
In der alle kopierten dateien hineingeschrieben wurden." Es ist nicht
einfach, dies zu erreichen, da dein Programm (mit Ausnahme der paar
Kopfzeilen) keine Dateien kopiert, sondern sie löscht!

Falls du die *Namen* der Dateien, die gelöscht werden, in eine Logdatei
schreiben willst, hast du mehrere Möglichkeiten. Das Programm weiter unten
zeigt, wie eine einfache Methode funktioniert. Dazu musst du das Programm
wie folgt aufrufen:

cscript //nologo c:\Markus.vbs > c:\log.txt

Beachte zudem folgendes:
- Es ist nicht nötig, das File System Object mehrere Male zu deklarieren.
Ein einziges Mal reicht.
- In VB Script ist es üblich (aber nicht obligatorisch!), Objekte mit den
Buchstaben "obj" oder einfach "o" zu kennzeichnen.
- Dein Code ist viel leichter lesbar, wenn du die Zeilen zwischen "if" und
"end if" wie auch zwischen "for each" und "next" einrückst.
- Da dein Programm rekursiv ist, brauchst du den Code zum Löschen der
Dateien bloss einmal aufzurufen.
- Das Objekt objNet könntest du eigentlich weglassen. Es wird ja nie
gebraucht.

[01] Set objNet = CreateObject("WScript.NetWork")
[02] Set objFSO = CreateObject("Scripting.FileSystemObject")
[03]
[04] Set objFil1 = objFSO.Getfolder("C:\test")
[05] objFil1.copy ("c:\test1")
[06] MsgBox "COPY done"
[07]
[08] ' Beginnt ab hier mit dem kopieren !
[09] dtdatum=Now
[10] Set objFld = objFSO.getfolder("c:\test")
[11] Call Unterordner(objFld, dtdatum)
[12]
[13] '
[14] 'Dateien im Unterordner löschen
[15] '
[16] Function Unterordner(objSFld, dtdatum)
[17] For Each objFil In objSFld.Files
[18] If objFil.datelastmodified < DateAdd("d",-30,dtdatum) Then
[19] objFil.delete
[20] WScript.Echo objFil.Path
[21] End If
[22] Next
[23]
[24] For Each objSFld In objFld.subfolders
[25] Call Unterordner(objSFld, dtdatum)
[26] Next
[27] End Function

Ähnliche fragen