MS-DOS Forum

MS-DOS Forum
Anleitungen, Referenz aller DOS Befehle, Batch Dateien
 
RegistrierenRegistrieren  LoginLogin

Neues Thema eröffnen   Neue Antwort erstellen    MS-DOS Forum Foren-Übersicht -> Fehler und Probleme
Autor
Nachricht
djmugge





Batchdatei mit Zähler
Verfasst am: 04.10.2009, 18:43

Ich habe folgendes vor:

Situation:
Jana speichert die Emails in Verzeichnissen mit dem Muster User1, User2,... und so weiter. IMAP Benutzer haben in diesem Ordner einen Unterordner "Trash", welcher dem Papierkorb im Outlook gleichgesetzt ist. Bei IMAP bleibt die komplette Verzeichnisstruktur auf dem Mailserver erhalten, also praktisch eine 1:1 Kopie der Verzeichnisse wie sie in Outlook und Co. angezeigt werden.

Nun gibt es User, die ihre gelöschten Emails nie aus dem Papierkorb empfangen. Im Konkreten Fall einer kleinen Firma mit 10 Mitarbeitern ist die Platte da recht schnell zugemüllt.

Folgende Überlegung:
Eine Batchdatei wird täglich um Mitternacht ausgeführt und prüft die Emailverzeichnisse bzw. die jeweiligen Postfach Ordner, ob im Papierkorb "trash" sich Dateien befinden und löscht diese.
Das ganze soll mit geloggt werden.

Das Problem
Die Batchdatei wird sehr lang, wenn man mit "cd" und "cd.." jedes einzelne Verzeichnis aufruft. Das ganze soll mit Variablen und einer Schlaufe vereinfacht werden.

Das soll schematisch geschehen

  • Batch Datei wird gestartet per Taskplaner
  • Logeintrag mit Datum und Uhrzeit
  • Counter wird auf 1 gesetzt
  • prüfe ob Verzeichnis user1 vorhanden
  • wenn ja Wechsel in Verzeichnis User1 (user%counter%)
  • wenn kein user1 vorhanden erhöhe Counter um 1 und beginne von vorne
  • prüfe ob verzeichnis trash existiert
  • wenn ja wechsel ins verzeichnis trash
  • wenn in* vorhanden lösche alle Dateien in*
  • Logeintrag mit Datum, Uhrzeit User 1 wird aufgeräumt
  • Logeintrag Datum Uhrzeit User1 ok
  • Counter um 1 erhöhen

  • Logeintrag Datum Uhrzeit user%counter% wird bereinigt
  • wiederhole Prüfung / reinigung
  • ...
  • ...
  • ...
  • Logeintrag datum uhrzeit alle verzeichnisse überprüft


Alle Schritte sollen Zeile für Zeile in einer Logdatei mitprotokolliert werden.

Code-Beispiel
Im Moment habe ich folgenden Code, welcher aber nicht funktioniert, da der Verzeichnisname so nicht in der Variablen geändert werden kann, wie es scheint.


Code:

echo off
set counter=1 
set maxcount=36
set user=user%counter%
cd\
rem cls
for /f "tokens=2,* Delims=/ " %%i in ('date /t') do set backdat=%%i%%j
rem cls
echo %date%, %time% - Start Optimierung Email Postfach >>c:\programme\jana2\logfiles\clean_emails.log
echo %date%, %time% - Start Optimierung Email Postfach
goto clean

:clean
set /a counter=%counter% + 1 
if "%counter%" EQU "%maxcount%" goto ENDE
echo %date%, %time% - user%counter% wird optimiert >>c:\programme\jana2\logfiles\clean_emails.log
echo %date%, %time% - user%counter% wird optimiert
cd\
d:
cd data
cd emails
cd %user%counter%
if exist trash goto trash
if not exist trash goto clean

:trash
cd trash
echo %date% %time% - Postfach %user%counter%% wird berprft
if exist in* del in* echo %date% %time% - %postfach% OK >>c:\programme\jana2\logfiles\clean_emails.log
echo %date% %time% - %user%counter%% OK
if not exist in*.* echo %date% %time% - %postfach% OK >>c:\programme\jana2\logfiles\clean_emails.log
echo %date% %time% - %user%counter%% OK
cd..
cd..
goto clean

:ende
echo %date%, %time% - Optimierung der Postf„cher abgeschlossen >>c:\programme\jana2\logfiles\clean_emails.log

_________________
 
Neues Thema eröffnen   Neue Antwort erstellen    MS-DOS Forum Foren-Übersicht -> Fehler und Probleme

Tags: batch datei, datum uhrzeit, erhöhen, batchdatei

 
 Verwandte Themen   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Kopieren einer Datei auf einen Drucker 3681 02.01.2009, 23:10
Keine neuen Beiträge Kopieren von Text von der Tastatur in eine Datei 3567 29.12.2008, 17:41
Keine neuen Beiträge Umbenennen einer Datei während des Kopierens 5008 16.12.2008, 04:04
Keine neuen Beiträge eine gelöschte MS-DOS Datei wiederherstellen 6583 09.11.2008, 10:47
Keine neuen Beiträge MS-DOS wird nicht im oberen Speicherbereich ausgeführt 2780 09.11.2008, 10:40
 



[ Time: 0.1144s ][ Queries: 59 (0.0116s) ][ GZIP on - Debug on ]