Hallo Leute,
Ich bin auf der suche nach einer Lösung für ein eigentlich einfaches Problem.
Folgendes:
Ich habe ein Verzeichniss wo alle 10 Minuten ein kurzes Textfile erzeigt wird (Produktionsmaschine)
Ich möchte um 23:59 alle Files Zippen und zwar mit dem Datum als Dateiname (YYYY-MM-DD.zip) und in einem Archivordner ablegen.
Und anschließend alle Dateien löschen.
Unter unix hätte ich kein problem damit weil das DATE Befehl ein bißchen mehr möglichkeiten bietet wie unter Windows.
Kennt wer eine Möglichkeit wie man das aktuelle Datum in Windows formatieren kann?
Das zippen und löschen ist kein Problem.
Danke!
mfg.
Walter
Hallo.
Kennt wer eine Möglichkeit wie man das aktuelle Datum in
Windows formatieren kann?
Unter Windows XP gibt es die Variable %date%, die das aktuelle Datum enthält. Diese kannst du mit den üblichen Substring-Funktionen beim Variablenauflösen bearbeiten. Das genau Format der Variable ist allerdings abhängig von den Sprach- und Ländereinstellungen. Bei mir steht das Datzm in der Form DD.MM.YYYY da drin. Da könnte an dann, um an die von dir gewünschte Form zu kommen folgendes machen:
%date:~6:4%-%date:~3:2%-%date:~0,2%.zip
Das wäre dann der Parameter, den du als Dateinamen deinem Zip-Programm übergeben würdest.
Sebastian.
Hallo Walter
Ich habe ein Verzeichniss wo alle 10 Minuten ein kurzes
Textfile erzeigt wird (Produktionsmaschine)
Ich möchte um 23:59 alle Files Zippen und zwar mit dem Datum
als Dateiname (YYYY-MM-DD.zip) und in einem Archivordner
ablegen.
Kennt wer eine Möglichkeit wie man das aktuelle Datum in
Windows formatieren kann?
Das zippen und löschen ist kein Problem.
Hmm, unter Windows gibt es kein ordentliches Date-Tool,
ich mach das immer mit einem kleinen perl-Skript, für
Deinen Fall sähe das so aus:
1) Alle Dateien (nach zipdate.zip) zippen:
C:\ordner> zip zipdatei.zip *.*
2) Namen dieser zipdatei.zip mit Skript anpassen
C:\ordner> perl newdate.pl zipdate.zip
Ausgabe: zipdatei.zip ==> 2006-09-14-zipdatei.zip
So ungefähr würde ich das machen. Das benötigte Skript
würdest Du newdate.pl nennen und Folgendes rein-
schreiben: [newdate.pl]
use POSIX;
$inpname = shift or die "kein Dateiname vorhanden!";
$outname = strftime("%Y-%m-%d", localtime) . "-$inpname";
rename $inpname, $outname and print "$inpname ==\> $outname\n";
Dieses Datums-Format „%Y-%m-%d“ kannst Du dann nach den
Posix-Regeln (http://unixhelp.ed.ac.uk/CGI/man-cgi?strftime) anpassen.
Ach so, ==> http://downloads.activestate.com/ActivePerl/Windows/…
Grüße
CMБ