Opgelost Dropbox - een backup draaien

Dit topic is als opgelost gemarkeerd

anton44

Verenigingslid
Lid geworden
20 mei 2005
Berichten
1.780
Middels een batch file start ik opgewenste momenten het maken van veiligheidscopien van de gewijzigde bestanden waaronder een aantal naar dropbox.
Nu zoek ik een signaal vanuit dropbox wanneer het backuppen voltooid is om de batch file af te sluiten (naar Exit te gaan).
 
Hoe moet dropbox weten dat hij alle data ontvangen heeft. Die software heeft geen enkel idee wat jij er naartoe stuurt. Oftewel. In die richting verwacht ik geen oplossing

Ik ben eerder nieuwsgierig naar de vraag waarom jouw batchfile niet weet dat hij klaar is met kopiëren.
 
@RogerS,
Bedankt voor je reactie.
Voordat ik 's avonds afsluit run ik altijd het batch bestand. Nu had ik onlangs wat meer bestanden die naar dropbox moesten. Bewust heb ik op het einde een wachttijd ingezet om "zeker te zijn" dat het backuppen afgerond is.
Onlangs kreeg ik bij het opstarten van de laptop de melding van dropbox dat er nog bestanden gekopieerd werden naar dropbox. Hieruit concludeer ik, goed of fout, dat in de avond sessie niet alle bestanden verwerkt waren.
Vandaar de vraag om pas af te sluiten als alle bestanden verwerkt zijn die vermeld zijn in de batch.
(een paar regels zijn fixtief aangepast mbt mapnamen)
Code:
@echo off
cls
echo:
set path = c:\Program Files (x86)\Dropbox\Client\";"c:\Program Files\Microsoft Office\root\Office16\";%path%
set app="c:\Program Files (x86)\Dropbox\Client\Dropbox.exe"
set "today=%date:~6,4%%date:~3,2%%date:~0,2%"
echo:
choice /C JN /M "...>>>...Maak een keuze: Doorgaan J of N om te stoppen."
echo:
if errorlevel 2 goto end2
tasklist /FI /IM "IMAGENAME eq Dropbox.EXE" 2>NUL | Find /I /N "Dropbox.EXE" > NUL
if %errorlevel%==0 TASKKILL /F /IM Dropbox.EXE >nul
start "Restart Dropbox" %app% -B;
echo:
echo:    !!!  Zijn alle bestanden en toepassingen gesloten ?
echo:
FOR /F %%I IN ('WMIC path win32_localtime get DayOfWeek /format:list^|FINDSTR "="') DO SET _%%I
FOR /F "tokens=1 delims==" %%I IN ('set _^|FINDSTR /R "^_[DHMS][aoie][^k]*$"') DO SET %%I=0!%%I!&SET %%I=!%%I:~-3!
:: Display the day of week  DayOfWeek (0=zondag, 1=maandag etc)
ECHO   Weekdag = %_DayOfWeek%
if %_DayOfWeek% == 0 goto 1
if %_DayOfWeek% == 1 goto 2
if %_DayOfWeek% == 2 goto 1
if %_DayOfWeek% == 3 goto 2
if %_DayOfWeek% == 4 goto 1
if %_DayOfWeek% == 5 goto 2
if %_DayOfWeek% == 6 goto 2
echo:
:1
echo:        Outlook bestanden worden verwerkt
echo:
tasklist /FI "IMAGENAME eq OUTLOOK.EXE" 2>NUL | Find /I /N "OUTLOOK.EXE" > NUL
if %errorlevel%==0 TASKKILL /F /IM OUTLOOK.EXE >nul
echo:
ping -n 8 127.0.0.1 >nul
echo:
robocopy "d:\Data mappen\Documenten\Outlook_pst\." "D:\Test\660G11-Backup-%today%_%_DayOfWeek%\Documenten\." /M /S /DCOPY:DA /XF ~*.*
echo:
goto 2
:2
echo:         De gewijzigd DATA zonder OUTLOOK worden verwerkt.
: roboCopy "D:\Data mappen\Batch\." "d:\Test\! Batch\." /A /S /DCOPY:DA
echo:
robocopy "D:\Data mappen\." "D:\Test\660G11-Backup-%today%\." /M /S /DCOPY:DA /XF ~*.* /XD "d:\Data mappen\Documenten\Outlook_pst" /XF *.log
echo:
goto end
:end
roboCopy "D:\Test_G11\660G11-Backup-%today%\." "D:\Dropbox\Test_660G11-%today%\." /S
ping -n 10 127.0.0.1 >nul
echo:
echo:
echo: Taak afgerond
ping -n 5 127.0.0.1 >nul
exit
end2
exit
ping -n 5 127.0.0.1 >nul
 
Logisch lijkt mij om pause aan het eind van de batch file te gebruiken dan kun je zien wat robocopy heeft gedaan. Exit moet normaal toch de batch file afsluiten?

Hoe moet dropbox weten dat hij alle data ontvangen heeft.

Onlangs kreeg ik bij het opstarten van de laptop de melding van dropbox dat er nog bestanden gekopieerd werden naar dropbox. Hieruit concludeer ik, goed of fout, dat in de avond sessie niet alle bestanden verwerkt waren.

Dat rijmt niet met elkaar.
 
Dat rijmt niet met elkaar.
Inderdaad en dat is ook mijn probleem.
Mogelijk was de wachttijd te kort voordat de melding "Taak afgerond" verscheen en ik de PC uitschakelde ?
Waar of niet waar?? Word de volgende regel in een batch pas gestart als actieve regel afgewerkt is ? In dat geval zou mijn script het opgedoken probleem niet veroorzaakt mogen hebben.
 
Volgens mij en internet:

Ja, in een batchverwerking wordt de volgende regel pas gestart nadat de actieve regel volledig is uitgevoerd. Dit is het principe van een batchverwerking: taken worden in volgorde uitgevoerd, waarbij de volgende taak pas start als de vorige is voltooid.

In de context van een batchbestand (een reeks opdrachten) of een ander type batchverwerking, betekent dit dat elke regel in het bestand sequentiële wordt uitgevoerd. Eerst wordt de opdracht op de huidige regel voltooid, en pas daarna wordt de volgende regel in het bestand gelezen en uitgevoerd.
 
Ok dit bevestigd eigenlijk wat ik geleerd heb.
Ik zal eea wat nauwkeurig bijhouden en hopenlijk de bug bij mij vinden.
Bedankt!
 
Met pause aanbrengen kun je stap voor stap kijken hoe de batch loopt.
Wat ik ervaar is dat bij een enkele toepassing die openstaat deze met het rode kruis weigert te sluiten. Dan moet je in de toepassing Afsluiten kiezen en dan gaat de batch file pas verder.
 
Probleem is dat je bestanden eerst naar een Dropbox map op je eigen pc worden gekopieerd. De dropbox software synced die vervolgens met de cloud.

Volgens grote vriend ChatGPT zou het moeten kunnen als je de Dropbox CLI tools hebt geïnstalleerd. De volgende commandoregel geeft dan de status weer

Code:
"$env:ProgramFiles\Dropbox\Client\Dropbox.exe" status
 
Heeft het je toch aan het denken gezet? :) Bedankt!
Ik heb geen flauw idee wat Dropbox CLI tools zijn en hoe e.e.a in mijn bat file in te passen is
 
en je hebt geen zoekmachine waar je iets als "install dropbox cli tools" kunt intypen?
 
Natuurlijk heb ik zoekmachines maar met de resultaten daarvan weet ik geen weg.
Laat maar zitten - te complex voor mij;)
 
Jammer.
Het lijken mij erg handige tools voor administratief gebruik van Dropbox.
 
Ik kende die tools ook niet.
Mijn opmerking is gebaseerd op het doorlezen van de documentatie.
Wellicht dat het niet direct past in de batchfile die je hebt, maar die kan je er uiteraard op aanpassen.
 
De hele oplossing is dus het maken van een loop in je batchfile.

-Status controleren
-Even wachten
-Indien klaar dan uit de loop en anders terug naar boven en status controleren.

Moet lukken met een beetje geduld
 
Allen bedankt maar ik zet niet door.
Ik heb het uploaden naar Dropbox een paar keer nauwkeuriger geobserveerd en zie geen gekke dingen.
Als ik een eenvoudige gereedmelding van dropbox zou hebben gekregen had ik die willen meenemen.
Nu lijkt het dat ik met een kanon op een mug probeer te schieten. ;)
Nogmaals dank !
 
Terug
Bovenaan Onderaan