W2K prof. Engelse versie.
Ik zal proberen uit te leggen hoe ik deze regel heb benut.
Ten eerste heb ik op mijn C:-schijf een mappen structuur aangemaakt:
C:\batch
C:batch\mappen
C:\batch\log
In batch staan 2 batch-bestanden, in de folder "mappen" staat een text bestand met daarin de lokatie van de data die gebackupped moet worden en in de log-folder wordt simpelweg een log-file bijgehouden.
De 2 batch bestanden zien er als volgt uit:
inhoud: XSTART.BAT
@echo off
echo XSTART.BAT - roept START_BATCH.BAT aan
set pad=\\workstation\batch
set doelpad=\\workstation\backup
set log=%pad%\log
if exist del \\workstation\batch\log\start_batch.log
FOR /F "TOKENS=1,2*" %%A IN ('DATE/T') DO SET DATE=%%B
FOR /F "TOKENS=1,2*" %%A IN ('TIME/T') DO SET TIME=%%A
For /F "EOL=; Tokens=1,2,3 delims=," %%i in (%pad%\mappen\mappen.txt) do call %pad%\start_batch.bat %%i %%j %%k >> %pad%\log\start_batch.log
Inhoud: START_BATCH.BAT
@echo off
echo START_BATCH.BAT
echo *************************************************************
echo Logdatum %date% %time%
echo *************************************************************
xcopy %1 %doelpad%\%date%\%2\%3 /D /S /Y
Nu nog de inhoud van het bestand mappen.txt:
"c:\Documents and Settings\Administrator\My Documents",C,"Documents and Settings\Administrator\My Documents";
"c:\Documents and Settings\Administrator\Desktop",C,"Documents and Settings\Administrator\Desktop";
"D:\Mijn Documenten",D,"Mijn Documenten";
Per regel zijn er 3 variabelen: De gehele locatie, daarna de logische schijf en daarna het pad zonder de logische schijf. Elke regel eindigt met een ; en elke variabele is gescheiden door een ,
Als ik het XSTART.BAT opstart zet hij eerst een paar variabelen die later gebruikt gaan worden. Vervolgens leest hij eerst de datum en de tijd uit en zet deze weg in 2 variabelen die gebruikt worden in het log-bestand START_BATCH.LOG.
Daarna leest hij mappen.txt uit en zet deze 3 variabelen in %i, %j en %k en start na elke keer een regel ingelezen te hebben van mappen.txt het bestand START_BATCH.BAT met de 3 variabelen.
START_BATCH.BAT is vrij simpel. Hierin wordt eerst een beetje text gegenereerd via echo's.
Daarna komt jouw regel met xcopy, alleen heb ik dezse dusdanig aangepast dat er van allerlei variabelen bij in staan.
Het werkt allemaal prima, maar op het moment dat START_BATCH.BAT de xcopy-regel gaat uitvoeren en xcopy ziet geen doeldirectory (dus hij moet een directory aanmaken), dan vraagt xcopy of hij een File (F) of een Directory (D) weg moet schrijven.
Als ik dan een D in typ (per regel van mappen.txt!) gaat hij wel verder.
Je ziet geen output op het scherm, dus je ziet ook de vraag niet om een F of een D in te typen.
Ik weet het nu, en het is terug te lezen in de log-file, maar irritant is het wel.
Als dit nu opgelost kan worden, dan ben ik al weer een stuk verder.
Hierna wil ik namelijk een checksum op de doelmap.
Er moet dan gecheckt worden hoe groot de map is. Als de map groter is dan bijvoorbeeld 500 MB dan moet er een CD-tje gebrandt worden.
Ik hoop dat ik het 1 & ander duidelijk gemaakt heb.
Het is wel een heel verhaal geworden.
Nog even 1 puntje: er wordt nu geen data overschreven omdat ik met een datum werk in het doelpad.
Je krijgt dus een de volgende mappen structuur:
E:\backup
E:\backup\10-01-2003\C\Documents and Settings\Administrator\Desktop
E:\backup\10-01-2003\C\Documents and Settings\Administrator\My Documents
E:\backup\10-01-2003\D\Mijn Documenten
E:\backup\11-01-2003\C\Documents and Settings\Administrator\Desktop
E:\backup\11-01-2003\C\Documents and Settings\Administrator\My Documents
E:\backup\11-01-2003\D\Mijn Documenten
Alvast bedankt voor het doorlezen!
groet,
Dave.