Compare gebruiken in Batch-file.

Status
Niet open voor verdere reacties.

RadboudAKF

Gebruiker
Lid geworden
3 nov 2010
Berichten
219
Ik wil graag in een batchfile (die moet draaien achter een snelkoppeling voor de gebruiker) twee Access-bestanden met elkaar vergelijken.
Als de bestanden ongelijk zijn in grootte moet er een copieer-actie plaatsvinden.

Ik probeerde dit....maar weet niet zeker of dit helemaal klopt. (ben geen expert)

Bovendien wil ik graag de vraag "Nog meer files vergelijken?" onderdrukken, maar weet niet hoe ik dit moet aanpakken. Wie helpt?


@echo off

:main

comp g:\ZSNieuw-TEST2.mdb g:\ZSNieuw-TEST3.mdb

if errorlevel 1 goto different size

:next

echo Files are same size

pause

exit

:different size

copy g:\ZSNieuw-TEST2.mdb g:\ZSNieuw-TEST3.mdb

pause

EXIT

Ik wil graag de vraag "Nog meer files vergelijken?" onderdrukken, maar weet niet hoe. Wie helpt?
 
Het lijkt erop dat COMP die vraag altijd stelt, eventueel kan je er standaard 'N' op antwoorden met je script zelf. Je zal dan echter nog steeds de vraag zien verschijnen (en het antwoord er direct na ook)

In jouw geval zou ik voor het filecompare (FC) commando gaan in binary mode:
Code:
@echo off

:main
fc /b g:\ZSNieuw-TEST2.mdb g:\ZSNieuw-TEST3.mdb > nul
if errorlevel 1 goto different size

:next
echo Files are same size
pause
exit

:different size
copy g:\ZSNieuw-TEST2.mdb g:\ZSNieuw-TEST3.mdb 
pause
exit
 
Bij een database is het erg onverstandig om een verschil in inhoud te bepalen aan de hand van de filegrootte. Daarnaast zal enkel het openen van de database al minimaal een last-opened timestamp e.d. wijzigen. Dus goede kans dat het bestand altijd gekopiëerd gaat worden. Daarnaast kan het bestand nog eens geopend zijn, waardoor het kopieren mogelijk niet goed gaat.

Beter is om in de database een versieteller bij te houden. De versie met het hoogste nummer is dan de meest actuele. Of gelijk overschakelen naar een centrale database en dan heb je dit hele gedoe niet.
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan