Daten Kopieren mit VBScript

chrisxjr

Lieutenant
Registriert
Okt. 2006
Beiträge
696
Hallo zusammen!

Da ich ein absoluter Scripting noob bin bräuchte ich eure Hilfe...

Auf einem AppServer liegt ein Verzeichnis "D:\XY\runtime\log"

Jetzt soll in diesem Verzeichnis ein Verzeichnis angelegt was so aussiehen soll:
"LOG.JJJJ.MM.TT_hh.mm" also JJJJ=Jahr MM=Monat TT=Tag und hh=stunde mm=minute

Ich wollte dann einen Task einrichten sodass dieses Script in festgelegter Zeit laufen soll.
Es soll halt nur die aktuelle Zeit incl. Datum erfasst werden und als Verzeichnis name erstellt
werden.

Jetzt gehts weiter...

In dieses Verzeichnis sollen folgende Daten kopiert werden die in diesem log bzw. auch noch anderen Verzeichnissen liegen:

D:\XY\runtime\log\ENW.log
D:\XY\runtime\log\PMBeenden.log
D:\XY\runtime\log\PMSystem.log
D:\XY\runtime\log\PMServerService_app.log
D:\XY\runtime\log\PMServerService.log
D:\XY\runtime\shark\logs\*.*
D:\XY\runtime\pm\export\log\*.*
D:\XY\runtime\pm\import\log\*.*

Nachher wollte ich dann noch einen DelAge Dienst einrichten der dann nach festgelegter Zeit die Log Verzeichnisse dann wieder löscht. Aber das hat ja jetzt weniger damit zu tun.

Ich hoffe ihr könnt mir dabei weiterhelfen.

Vielen lieben dank!

Gruß
Christian
 
es sollte schon mit was gescripteten also ein vbs script werden.

Ich habe mich schonmal etwas schlau gemacht und habe schonmal einen teil des ersten Parts gefunden. Nämlich das anlegen eines Ordners:

Code:
'*************************************************************************
'
'	File:  	CreateNewFolder.vbs
'	
'	Autor: 	Christian Jerusalem
'	
'	Comments: Anlegen eines neuen Ordners.
'
'**************************************************************************

'Erstelle einen neuen Ordner
On Error Resume Next
dim objFSO

'zu erstellender Ordner
strFldr="C:\Dokumente und Einstellungen\je\Desktop\Test_Ordner"

set objFSO=CreateObject("Scripting.FileSystemObject")

objFSO.CreateFolder(strFldr)

set objFSO=Nothing

Jetzt fehlt mir noch die Info wie ich das mache das der Ordnername so erstellt wird ich ich im ersten Post geschrieben habe, also jahr.monat usw usw usw...

Danach gehts ja erst weiter mit dem Kopieren der Dateien...
 
Kannst du mir mal anhand meines Codes zeigen wo das da eingesetzt werden soll?!?

Danke

Edit: bekomem ich da auch irgendwie noch die Uhrzeit rein??
 
Zuletzt bearbeitet:
also das müsste dann so sein -->

'*************************************************************************
'
' File: CreateNewFolder.vbs
'
' Autor: Christian Jerusalem
'
' Comments: Anlegen eines neuen Ordners.
'
'**************************************************************************

'Erstelle einen neuen Ordner
On Error Resume Next
dim objFSO
Dim s as String

s = Format(Date, "yyyy.mm.dd")


'zu erstellender Ordner
strFldr="C:\" & s

set objFSO=CreateObject("Scripting.FileSystemObject")

objFSO.CreateFolder(strFldr)

set objFSO=Nothing
 
Also ich habe mir das grad mal so zurechgebastelt:

Code:
'*************************************************************************
'
' File: CreateNewFolder.vbs
'
' Autor: Christian Jerusalem
'
' Comments: Anlegen eines neuen Ordners.
'
'**************************************************************************

'Erstelle einen neuen Ordner
On Error Resume Next
dim objFSO
Dim s as String

s = Format(Date, "yyyy.mm.dd")


'zu erstellender Ordner
strFldr="C:\Dokumente und Einstellungen\je\Desktop\log." & s

set objFSO=CreateObject("Scripting.FileSystemObject")

objFSO.CreateFolder(strFldr)

set objFSO=Nothing

Er kreidet mir aber immer das "Dim s as String" oben in der Deklaration an.
Gibt es noch eine möglichkeit die Uhrzeit dahinter zu hängen, also so das der Ordner
beispielsweise so aussieht: log.2008.02.15_11.52

Gruß
Christian
 
Hallo,
da das Windows Script weder richtige Deklarationen noch die Format-Funktion unterstützt muss man sich leider etwas anders helfen:

Code:
monat = month(now)
if len(monat) < 2 then monat = "0" & monat
tag = day(now)
if len(tag) < 2 then tag = "0" & tag
stunde = hour(now)
if len(stunde) < 2  then stunde = "0" & stunde
min = minute(now)
if len(min) < 2 then min = "0" & min

folderName = "LOG." & year(now) & "." & monat & "." & tag & "_" & stunde & "." & min

Einfach an die Stelle mit dem s = ... kopieren und das "log." aus strFldr entfernen oder eben aus folderName. ;)

Grüße,
$ui

P.S.: Das kopieren sollte auch mit dem FilesystemObject funktionieren. Hier nachzulesen: http://msdn2.microsoft.com/en-us/library/6973t06a(VS.85).aspx
 
Zuletzt bearbeitet:
jetzt habt ihr es geschafft!!! Ich bin ich verwirrt!! :):)

so sieht das jetzt bei mir aus:
Code:
'*************************************************************************
'
' File: CreateNewFolder.vbs
'
' Autor: Christian Jerusalem
'
' Comments: Anlegen eines neuen Ordners.
'
'**************************************************************************

'Erstelle einen neuen Ordner
On Error Resume Next
dim objFSO
Dim s as String

s = monat = month(now)
if len(monat) < 2 then monat = "0" & monat
tag = day(now)
if len(tag) < 2 then tag = "0" & tag
stunde = hour(now)
if len(stunde) < 2  then stunde = "0" & stunde
min = minute(now)
if len(min) < 2 then min = "0" & min

folderName = "LOG." & year(now) & "." & monat & "." & tag & "_" & stunde & "." & min

'zu erstellender Ordner
strFldr="C:\Dokumente und Einstellungen\je\Desktop\" & s

set objFSO=CreateObject("Scripting.FileSystemObject")

objFSO.CreateFolder(strFldr)

set objFSO=Nothing

Aber er kreidet das Dim s as String immernoch an...

Irgendwas habe ich da wohl falsch verstanden....
 
Zuletzt bearbeitet:
Code:
Dim s as String

s =
einfach entfernen das ist gar nicht mehr nötig. :D
ich merk schon, ich hätte genauer sein müssen ^^
 
Hi,

so sieht es jetzt bei mir aus:

Code:
'*************************************************************************
'
' File: CreateNewFolder.vbs
'
' Autor: Christian Jerusalem
'
' Comments: Anlegen eines neuen Ordners (incl. Zeitangabe).
'
'**************************************************************************

'Erstelle einen neuen Ordner
dim objFSO

monat = month(now)
If len(monat) < 2 then monat = "0" & monat
tag = day(now)
if len(tag) < 2 then tag = "0" & tag
stunde = hour(now)
if len(stunde) < 2  then stunde = "0" & stunde
min = minute(now)
if len(min) < 2 then min = "0" & min

folderName = "LOG." & year(now) & "." & monat & "." & tag & "_" & stunde & "." & min

'zu erstellender Ordner
strFldr="C:\"

set objFSO=CreateObject("Scripting.FileSystemObject")

objFSO.CreateFolder(strFldr)

set objFSO=Nothing

Als fehler bekomme ich immer Zeile 30 Zeichen 1 also das "objFSO.CreateFolder(strFldr)" nur wo ist da genau der fehler????
Wenn ich das auskommentiere passiert nichts.

Danke!

Gruß
Christian
 
Du versuchst den Ordner strFldr zu erstellen. In dieser Variable steht aber "C:\" drin, das kann also nicht gehen. Vermutlich ist an dieser Stelle so etwas wie
Code:
objFSO.CreateFolder(strFldr & folderName)
gemeint.
 
Hi,

ich überlege gerade wie ich das machen soll das er nicht gezielt immer auf D:\........ sucht...
das das von system zu system variabel sein kann.
Er soll erst ab dem " runtime\....." suchen... Ein Kollege sprach von rekursivem Pfad.
Nur habe ich absolut keinen Plan wie ich das in meinem Skript machen soll?!?!?!

Gruß
Christian
 

Ähnliche Themen

Zurück
Oben