anne_03 10 Geschrieben 23. November 2004 Melden Teilen Geschrieben 23. November 2004 Hallo, ich bin in der Programmierung von Batchdateien nicht so firm. Vielleicht kann mir hier jemand helfen? Ich will von einem Server (Windows2003) aus einem bestimmten Pfad alle die Dateien herauslöschen, die älter als drei Tage sind und im Dateinamen Teile des PC-Namens enthalten. Ich will diese Verzeichnisse, in denen die Dateien jeden Tag mehr werden mit der Batch bereinigen. Ich will immer nur die Dateien löschen, die älter als drei Tage sind und im Dateinamen einen String wie *P04* enthalten. Es muss also das Datum berechnet werden und der Dateiname muss P04 enthalten. Mit dem Suchen habe ich keine Probleme, aber ich will das tägliche Suchen und löschen automatisieren. Wenn es denn möglich ist. Diese Batch will ich dann als Task aufnehmen und vor dem Backup starten. Vielen Dank für eure Hilfe! Anne Zitieren Link zu diesem Kommentar
Dr.Lecter^ 10 Geschrieben 23. November 2004 Melden Teilen Geschrieben 23. November 2004 hi! das mittels batch machen ist ein wenig umständlich. hast du ahnung von anderen programmiersprachen (höheren)? c++, java...oder kannst das auch mit ner scriptsprache machen (vbs oder so) würd ich dir halt empfehlen... aber kannst mir ja mal pn schicken, wennst hilfe brauchst lg Zitieren Link zu diesem Kommentar
lefg 276 Geschrieben 23. November 2004 Melden Teilen Geschrieben 23. November 2004 Hallo, es scheint, mit einer höheren, komplexen Programmiersprache sei das Problem einfacher lösen. Viele Sachen lassen sich aber bei NT etc. auch per Batch lösen. Wesentliche Elemente sind dabei die Befehle Set und For. Bei Set ist es die Indizierung von Strings und bei For die Textiteration etc. Auf beides wird im nachfolgenden Link eingegangen. http://www.bb-sys.de/bbshell.htm Vom Prinzip steht alles in der Hilfe und unter /? dazu. Ich weiss, mit dem Matching-Operator von PERL ist es wohl einfacher, aber mit einer Batch geht es wohl auch. Gruß Edgar Zitieren Link zu diesem Kommentar
lefg 276 Geschrieben 23. November 2004 Melden Teilen Geschrieben 23. November 2004 Die Angabe, die Dateien liegen in einem bestimmten Pfad, ist mir ein wenig undeutlich. Liegen sie in mehrern Unterordnern dieses Pfades oder in einem bestimmten Ordner? Wie sieht der Pfad aus? Das Löschkriterium ist also: Daten älter als drei Tage sind zu tilgen? Ist das Kriterium streng einzuhalten? Zu berücksichtigen sind Monatssübergänge. Es gibt Monate mit 28,29,30 und 31 Tagen. Auch der Jahreswechsel ist zu beachten. Zitieren Link zu diesem Kommentar
Apotheker 10 Geschrieben 23. November 2004 Melden Teilen Geschrieben 23. November 2004 Hallo, XCopy /D:M-T-J in ein neues Verzeichnis, nur die Datein, die übrig bleiben sollen Altes Verzeichnis mit RD löschen Neues Verzeichnis auf alten Namen umbenennen. oder MD T1 MD T2 XCopy *P04* \T1 XCopy /D:M-T-J *P04* \T2 Del *P04*/Q XCopy \T2\*.* RD T1 /S /Q RD T2 /S /Q MfG Apotheker Zitieren Link zu diesem Kommentar
Dr.Lecter^ 10 Geschrieben 23. November 2004 Melden Teilen Geschrieben 23. November 2004 Original geschrieben von lefg Hallo, es scheint, mit einer höheren, komplexen Programmiersprache sei das Problem einfacher lösen. Viele Sachen lassen sich aber bei NT etc. auch per Batch lösen. da magst du schon recht haben...aner bevor ich mich grün und blau ärger, ist wohl gscheider einen 15 zeiler in java zu schreiben, der sich auch nebenher noch pickefein debuggen lässt ;) und nicht der *******-debugger von batch... selber debuggen :) aber jedem das seine :P mfg Zitieren Link zu diesem Kommentar
lefg 276 Geschrieben 23. November 2004 Melden Teilen Geschrieben 23. November 2004 Schätze mal, der TO kann kein Java. Ich auch nicht. Die Lösung von Apotheker hat auch was für sich. Zitieren Link zu diesem Kommentar
Dr.Lecter^ 10 Geschrieben 23. November 2004 Melden Teilen Geschrieben 23. November 2004 war ja auch nicht bös gemeint :p lg Zitieren Link zu diesem Kommentar
lefg 276 Geschrieben 23. November 2004 Melden Teilen Geschrieben 23. November 2004 Das habe ich auch nicht so aufgefasst. :) Gruß Edgar Zitieren Link zu diesem Kommentar
anne_03 10 Geschrieben 23. November 2004 Autor Melden Teilen Geschrieben 23. November 2004 Hallo, XCopy /D:M-T-J in ein neues Verzeichnis, nur die Datein, die übrig bleiben sollen Altes Verzeichnis mit RD löschen Neues Verzeichnis auf alten Namen umbenennen. oder MD T1 MD T2 XCopy *P04* \T1 XCopy /D:M-T-J *P04* \T2 Del *P04*/Q XCopy \T2\*.* RD T1 /S /Q RD T2 /S /Q MfG Apotheker Hallo, also das sieht ja schon ganz gut aus. Ich fürchte, die Bedingung mit dem aktuellen Datum minus 3 Tage lässt sich unter DOS nicht realisieren, oder wie seht ihr das? Andere Programmiersprachen beherrsche ich leider nicht. Der Pfad würde so heißen: K:\..\..\..\..\p200_P0429_usw.lst zum Beispiel. Zitieren Link zu diesem Kommentar
lefg 276 Geschrieben 23. November 2004 Melden Teilen Geschrieben 23. November 2004 Hallo Anne, ich habe etwas ähnliches schon mal programmiert. Mir scheint, du bist damit zur Zeit überfordert. Dazu braucht man etwas Erfahrung. Mach mir doch einfach mal eine Liste mit einigen Dateinamen und den Pfad dazu. Ich kann das denn hier nachbilden und den Ansatz zur Lösung erstellen. Dann kommt die Schritt-für-Schritt-Entwicklung. Gruß Edgar Zitieren Link zu diesem Kommentar
Big_Jack 10 Geschrieben 23. November 2004 Melden Teilen Geschrieben 23. November 2004 Hi, ich denke auch, daß Du hier mit DOS alleine nicht weiterkommst. Für solche Dinge nutze ich dann QBASIC, ist zwar steinalt, aber ich komme damit klar und es ist bei Windows dabei (irgendwo auf der CD). Für mich die alternative zu java usw. Big_Jack Zitieren Link zu diesem Kommentar
gr@mlin 10 Geschrieben 23. November 2004 Melden Teilen Geschrieben 23. November 2004 hi, hier ist n vbs: http://dieseyer.de/scr-html/dateienaltdelete.html nicht vergessen: pfad und alter anpassen! dürfte wohl in deinem fall das einfachste sein... gruss, gr@mlin Zitieren Link zu diesem Kommentar
anne_03 10 Geschrieben 23. November 2004 Autor Melden Teilen Geschrieben 23. November 2004 ich melde mich morgen nochmals bei euch. bin tatsächlich damit überfordert, weil damit keine Erfahrung. Aber schon mal vielen Dank. Zitieren Link zu diesem Kommentar
anne_03 10 Geschrieben 24. November 2004 Autor Melden Teilen Geschrieben 24. November 2004 An lefg: Hier die möglichen Pfadangaben: (alle müssen abgefragt werden!) \\Server\D:\K\daten\tb\projekt_daten\gm\lst\ oder \\Server\D:\K\daten\tb\projekt_daten\gn\lst\ oder \\Server\D:\K\daten\tb\projekt_daten\dat\ Dateinamen wie: (hier nur Auszüge) wordpad.exe_stdoutP0416_1668.log oder wcog1_P0425_987.csv oder wcog0_P0426_1757.log Ich denke ohne einen Skript kann man es nicht machen. Leider kann ich soetwas nicht und ich kann damit auch keine andere Firma beauftragen. Es soll ja nichts kosten. Ihr versteht. Danke und Gruß Anne 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.