skid
Goto Top

Datei umbenennen

Hallo,

brauche wiedermal etwas Hilfe....

habe ein Script das mit Robocopy Daten auf ein Laufwerk kopiert und mir am Ende eine Logdatei erstellt (log.txt --> wird von Robocopy erstellt).
kann mir jemand sagen wie ich es schaffe dieser log.txt das aktuelle Tagesdatum vorne anzuhängen ?
sollte also z.B. so aussehen: 18012005_log.txt.
ich kann zwar mit "Date" das aktuelle Datum auslesen aber schaffe es nicht dieses an den Dateinamen anzuhängen.

Das zweite wäre dann noch das diese log.txt nicht überschrieben werden soll sondern z.b. über 4 Wochen, jedesmal wenn das Script gestartet wird, eine neue Logdatei erstellt.

vielleicht habt ihr ja eine Lösung...

Gruss
SKID

Content-Key: 23880

Url: https://administrator.de/contentid/23880

Printed on: April 24, 2024 at 09:04 o'clock

Member: cykes
cykes Jan 18, 2006 at 10:47:55 (UTC)
Goto Top
Hallo,

einfach nachdem RoboCopy das Logfile erstellt hat, einen "rename LW:\Pfad\log.txt %DATE%_log.txt" ausführen,
dann klappt's auch mit dem Nachbarn ;)

Alternativ kannst Du das natürlich auch gleich in der Robocopy Kommandozeile übergeben
(hab ich jetzt nicht getestet, sollte aber auch funktionieren), dann statt der
Kommanzeilenoption /LOG:log.txt mal ein /LOG:%DATE%_log.txt ausprobieren,
spart man sich den rename ....

Gruss

cykes
Member: skid
skid Jan 18, 2006 at 11:12:37 (UTC)
Goto Top
Hi cykes,

ich denke das würde klappen wenn es eine Batch-Datei wäre - ist aber VB.
das hatte ich auch bereits versucht hat aber nicht geklappt face-wink
Member: cykes
cykes Jan 18, 2006 at 11:30:29 (UTC)
Goto Top
Das konnte ich aus "habe ein Script..." ja schlecht rauslesen face-wink

Naja, vielleicht hilft das hier:

---cut---

Dim MyDate
MyDate = Date ' MyDate contains the current system date

---cut---

Vielleicht hilft auch noch das hier:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script ...

oder

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script ...

Gruss

cykes
Member: skid
skid Jan 18, 2006 at 12:28:40 (UTC)
Goto Top
stimmt - von alleine kommt man da nicht gleich drauf face-wink

habe es jetzt nach langem hin und her so gelöst:

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile("c:\temp\robocopy\" & Str(Date) & "_log" & ".txt", ForReading)

jetzt fehlt nur noch das weitere dateien angelegt werden ohne die bestehenden zu löschen face-wink

gruss

skid
Member: cykes
cykes Jan 18, 2006 at 12:51:29 (UTC)
Goto Top
Dann bau doch noch nen Timestamp in den Dateinamen ein, z.B. hinter dem Datum ...
Member: skid
skid Jan 19, 2006 at 11:03:59 (UTC)
Goto Top
habe es nun so gelöst:

Zeit = Format(Time, "hh.mm.ss")

FileCopy "c:\temp\robocopy\Log.txt", "c:\temp\robocopy\" & Str(Date) & "_" & Zeit & "_log" & ".txt"

Kill ("c:\temp\robocopy\log.txt")

das logfile wird jetzt so erstellt wie ich es gerne hätte und es wird immer ein neues angelegt und keines überschrieben.

jetzt habe ich nun das problem das ich gerne per klick auf eine vorher definierte schaltfläche, mir die letzte erstellte datei anzeigen lassen will.

habe diese möglichkeiten versucht, aber kein erfolg gehabt:

Set WSHShell = CreateObject("WScript.Shell")
WSHShell.Run ("c:\temp\robocopy\" & Str(Date) & "_" & Zeit & "_log" & ".txt")

oder

WSHShell.Run ("c:\temp\robocopy\*.txt")


gruss
SKID