Discussion:
VBS Script welche eine Logdatei schreibt !
(zu alt für eine Antwort)
MarkusLang
2009-05-25 13:03:58 UTC
Permalink
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

--------SCRIPT-----

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
Pegasus [MVP]
2009-05-25 15:06:02 UTC
Permalink
"MarkusLang" <***@gmx.net> wrote in message news:028efd66-3679-4d9d-80c9-***@l28g2000vba.googlegroups.com...
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

--------SCRIPT-----

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
MarkusLang
2009-05-25 17:40:32 UTC
Permalink
Danke erstmal !

Wäre auch möglich so etwas in das Script zu bauen ?

Danke und Gruss
Markus
Pegasus [MVP]
2009-05-25 18:55:46 UTC
Permalink
"MarkusLang" <***@gmx.net> wrote in message news:1d4be4ae-2ab7-4b10-a223-***@m19g2000yqk.googlegroups.com...
Danke erstmal !

Wäre auch möglich so etwas in das Script zu bauen ?

Danke und Gruss
Markus

==============

Was?
MarkusLang
2009-05-25 19:31:01 UTC
Permalink
Danke für das Scipt !

Schaut deutlich besser aus ! Sehr übersichtlich !

Möchte nun noch im Script das ganze in eine LOG Datei schreiben !
Nicht mit dem Aufruf cscript //nologo c:\Markus.vbs > c:\log.txt

Welche dann unter c:\log liegt !

Habe mal was geshen wo writeline....... weiss aber nict da ich
Anfänger bin wie das einbauen kann !
Wichtig wäre das ich die zukopierenden Dateien in der Log datei habe !

Danke im vorraus
Pegasus [MVP]
2009-05-25 20:34:15 UTC
Permalink
"MarkusLang" <***@gmx.net> wrote in message news:9d574a51-c3cc-4391-89c2-***@x5g2000yqk.googlegroups.com...
Danke für das Scipt !

Schaut deutlich besser aus ! Sehr übersichtlich !

Möchte nun noch im Script das ganze in eine LOG Datei schreiben !
Nicht mit dem Aufruf cscript //nologo c:\Markus.vbs > c:\log.txt

Welche dann unter c:\log liegt !

Habe mal was geshen wo writeline....... weiss aber nict da ich
Anfänger bin wie das einbauen kann !
Wichtig wäre das ich die zukopierenden Dateien in der Log datei habe !

Danke im vorraus

====================

Als Anfänger solltest du unbedingt die Hilfsdatei script56.chm von der
Microsoft Site herunterladen. Dort sind sämtliche VB Script-Funktionen samt
Beispielen erklärt, so z.B. die OpenTextFile Methode oder die
Write/WriteLine Methode. Du sprichst übrigens immer noch von "zu kopierenden
Dateien", obschon dein Script etwas ganz anderes tut!
MarkusLang
2009-05-26 06:10:27 UTC
Permalink
Hallo

möchte die zu löschenden Dateien in eine LOG Datei schreiben lassen
welche <30 Tage sind

Gruss
Markus
Pegasus [MVP]
2009-05-26 15:44:24 UTC
Permalink
"MarkusLang" <***@gmx.net> wrote in message news:a6d0c394-cdfc-4186-a9c3-***@r3g2000vbp.googlegroups.com...
Hallo

möchte die zu löschenden Dateien in eine LOG Datei schreiben lassen
welche <30 Tage sind

Gruss
Markus

====================

Dein eigener Code (welchen ich nicht nicht ausprobiert habe) scheint mir
dazu geeignet zu sein:

if fil.datelastmodified < dateadd("d",-30,dtdatum) then
. . .
end if
MarkusLang
2009-05-27 08:18:38 UTC
Permalink
Hallo noch mal !

ja das klappt ja auch alles !

Ausser das er die LOG datei schreibt !

Möchte nur das script starten und dann soll hat eine log datei
geschrieben werden
1. welche Dateien er kopiert
2. in eine 2 datei welche er gelöscht hat

Danke und Gruss
Markus
Pegasus [MVP]
2009-05-27 08:54:11 UTC
Permalink
"MarkusLang" <***@gmx.net> wrote in message news:f3d43cee-624f-49ec-b72a-***@s20g2000vbp.googlegroups.com...
Hallo noch mal !

ja das klappt ja auch alles !

Ausser das er die LOG datei schreibt !

Möchte nur das script starten und dann soll hat eine log datei
geschrieben werden
1. welche Dateien er kopiert
2. in eine 2 datei welche er gelöscht hat

Danke und Gruss
Markus

===============

Zeig doch bitte mal, was du bereits hast, schon nur deswegen, weil dein
ursprünglicher Code kaum Befehle enthielt, welche Dateien kopierten.
MarkusLang
2009-05-27 09:10:13 UTC
Permalink
Hallo !

nutze immer noch mein Script

das kopiert die daten von C:\temp nach c:\temp1
dann werden alle daten welche älter sind wie 30 Tage gelöscht!

Nun würde ich wie ich schon sagte gerne ein Logfile schreiben lassen !
welche wir alle gelöschten daten dort reinschreibt !

Danke und Gruss
Pegasus [MVP]
2009-05-27 17:14:12 UTC
Permalink
"MarkusLang" <***@gmx.net> wrote in message news:22df9aaa-fba1-40f5-b079-***@g19g2000vbi.googlegroups.com...
Hallo !

nutze immer noch mein Script

das kopiert die daten von C:\temp nach c:\temp1
dann werden alle daten welche älter sind wie 30 Tage gelöscht!

Nun würde ich wie ich schon sagte gerne ein Logfile schreiben lassen !
welche wir alle gelöschten daten dort reinschreibt !

Danke und Gruss

===================

Eigentlich hast du sämtliche Elemente dazu bereits in deinem Script und
brauchst sie bloss zusammenzusetzen:

for each fil in fld.Files
FSO.CopyFile fil.path, "c:\temp1\"
objLogFile.writeline fil.path
next

Die beiden Befehle in der for/next Schlaufe habe ich direkt von der
Hilfsdatei script56.chm kopiert.
Adolf Schmock
2009-05-27 21:33:26 UTC
Permalink
ich will nich ich will nich *wie wild strampel*
Monitor
2009-05-28 05:35:06 UTC
Permalink
Vielleicht wäre es besser, wenn Markus einfach mit der Wahrheit herausrücken
würde. "Für meine Hausaufgaben muss ich ein Script schreiben, von dem ich
keinen blauen Dunst habe. Ich habe von jemandem ein paar Zeilen
abgeschrieben und möchte jetzt, dass mir das jemand schön fertig verpackt,
damit ich es als meine eigene Arbeit abgeben kann."
Post by Adolf Schmock
ich will nich ich will nich *wie wild strampel*
Adolf Schmock
2009-05-28 10:20:44 UTC
Permalink
Post by Monitor
Vielleicht wäre es besser, wenn Markus einfach mit der Wahrheit
herausrücken würde. "Für meine Hausaufgaben muss ich ein Script
schreiben, von dem ich keinen blauen Dunst habe. Ich habe von
jemandem ein paar Zeilen abgeschrieben und möchte jetzt, dass mir
das jemand schön fertig verpackt, damit ich es als meine eigene
Arbeit abgeben kann."
Post by Adolf Schmock
ich will nich ich will nich *wie wild strampel*
So in der Art habe ich auch gedacht. Ich wäre ja so "dumm" und würde es ihm
schreiben, wenn es mir nicht so seltsam vorkäme. Einmal so, einmal so, einmal
beides. (kopierte protokollieren, gelösche protokollieren, beides
protokollieren)

Ich mache jetzt mal mit Assembler, Compiler und Microprozessor weiter.

Schönen Tag noch.
MarkusLang
2009-05-31 06:57:17 UTC
Permalink
danke für die Hilfe !

ES LÄUFT !

MArkus
Pegasus [MVP]
2009-05-31 07:14:15 UTC
Permalink
"MarkusLang" <***@gmx.net> wrote in message news:5f814657-ff7b-4573-b89a-***@t21g2000yqi.googlegroups.com...
danke für die Hilfe !

ES LÄUFT !

MArkus

==============

Danke für die Rückmeldung.
Adolf Schmock
2009-05-31 11:44:59 UTC
Permalink
Post by MarkusLang
danke für die Hilfe !
ES LÄUFT !
MArkus
Na dann zeig mal her dein Moped ... man könnte es ja vielleicht noch
verbessern.

Loading...