Dr.Lecter^ 10 Geschrieben 1. September 2004 Melden Teilen Geschrieben 1. September 2004 hallo! hat jemand eine ahnung, wie man in einer batch datei eine bestimmte zeile aus einem textfile lesen kann: mit for /f "skip=n..... kann ich ab einer gewissen zeile lesen, aber da gibt es kein abbruchkriterium... es wäre echt toll, wenn mir da jemand helfen könnte..ich verzweifle nämlich schön langsam ;) mfg Zitieren Link zu diesem Kommentar
bienchen 10 Geschrieben 1. September 2004 Melden Teilen Geschrieben 1. September 2004 Hallo, Schreib doch was du damit machen willst. Wochin soll die Zeile ausgelesen werden? Gruß Bienchen Zitieren Link zu diesem Kommentar
Dr.Lecter^ 10 Geschrieben 1. September 2004 Autor Melden Teilen Geschrieben 1. September 2004 ich will einen teil des datums eines files extrahieren und in einer variable ablegen... ich wollte es mit einer for anweisung machen...die kann ich aber nicht abbrechen... die würde in etwa so aussehen: also ich nehm das datum: for /f "skip=7 tokens=1,2,3 delims=\. " %a in (test.txt) do set tmp=%a.%b.%c und da überschreibt er mir aber ständig die variable... ich hab nämlich keine möglichkeit gefunden den timestamp eines ordners halbwegs anständig herauszubekommen... deshalb will ich ein wenig "pfuschen" und dies so machen Zitieren Link zu diesem Kommentar
Dr.Lecter^ 10 Geschrieben 1. September 2004 Autor Melden Teilen Geschrieben 1. September 2004 es wäre auch toll, wenn dies ohne zusatztool gehen würde... sowas muss doch gehen :) mfg Zitieren Link zu diesem Kommentar
bienchen 10 Geschrieben 1. September 2004 Melden Teilen Geschrieben 1. September 2004 so kannst du das Datum auslesen (wenn ich dich richtig verstanden habe) for /F "tokens=1-2" %%i in ('date /T') do (set DATUM=%%i) for /F "tokens=1 delims=. " %%i in ("%DATUM%") do set tag=%%i for /F "tokens=2 delims=. " %%i in ("%DATUM%") do set mon=%%i for /F "tokens=3 delims=. " %%i in ("%DATUM%") do set jahr=%%i for /F "tokens=1" %%i in ('time /T') do (set ZEIT=%%i) for /F "tokens=1 delims=: " %%i in ("%ZEIT%") do set std=%%i for /F "tokens=2 delims=: " %%i in ("%ZEIT%") do set min=%%i echo Jetzt: %tag%.%mon%.%jahr% %std%:%min% pause Zitieren Link zu diesem Kommentar
Dr.Lecter^ 10 Geschrieben 1. September 2004 Autor Melden Teilen Geschrieben 1. September 2004 ja danke, dass is mir schon klar... mein problem ist folgendes.. ich möchte in einem cache ordner alle ordner löschen, die z.B älter als ein monat sind. nun war meine idee folgende.. ich hole mir alle directories in ein file..dann lese ich eines nach dem anderen aus und schreibe mir die enthaltenen files wieder in ein file... jetzt nehm ich einfach ein datum von einem file her (da wenn das filedatum ein gewisses alter hat, kann ich den ganzen ordner löschen) aber wenn du dir ein "dir" anschaust, dann kannst du am anfang und am ende ein paar zeilen schmeissen...zuerst infos über datenträger usw. und am ende datein + gesamte grösse.. da hier das datum z.B vom letzten zugriff enthalten ist wär das dann falsch und nun möchte ich z.b einfach das erste file hernehmen (das relevant ist) und die ersten 3 tokens (tt.mm.jjjj) herausholen und in einer variable ablegen aber wenn ich das mit einer for schleife mache, kann ich sie nicht abbrechen..und er würd mir im endeffekt dies hier liefern: 01.09.2004 dies gehört aber zu dem eintrag: 2.Verzeichnis(se),.7.075.512.320 danke für deine antwort...vielleicht hast du aber sogar auf dieses prob eine antwort ;) mfg p.s: und deshalb wäre es toll, wenn ich z.B nur das datum der achten zeile auslesen könnte Zitieren Link zu diesem Kommentar
bienchen 10 Geschrieben 1. September 2004 Melden Teilen Geschrieben 1. September 2004 Ah so... wir machen das so: set minage=20040615 robocopy I:\ Z:\Ziel\alle /e /move /XD Name1 Name2 /minage:%minage% alle Daten, die älter als 15.06.2004 sind, werden in ein Ordner verschoben, dabei werden Order Name1 und Name2 ignoriert. Dann kannst du noch mal allesim Ordner alle durchgehen und wenn alles o.k. ist kannst du den Ordner alle löschen. P.S. Der Ordner alle muss aber existieren Zitieren Link zu diesem Kommentar
Dr.Lecter^ 10 Geschrieben 1. September 2004 Autor Melden Teilen Geschrieben 1. September 2004 aha... ja das wird mir aber nicht viel weiterhelfen.. da das batch programm jeden tag beim starten eines anderen progs aufgerufen werden soll und alles älter 30 tage löschen soll. das es sich hierbei um mehrere gigs handelt, will ich nicht herumschieben ;) und da dies also dynamisch ist und sich nicht an einem fixen datum orientiert, will ich eben das datum "auseinandklauben" und das dann arithmetisch lösen.. aber danke für die hilfe :) mfg dani Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.