Jump to content

Batchprogrammierung


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

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

Link zu diesem Kommentar

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

Link zu diesem Kommentar

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.

Link zu diesem Kommentar
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

Link zu diesem Kommentar

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.

Link zu diesem Kommentar

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

Link zu diesem Kommentar

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

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...