Robocopy aansturen met snelkoppelingen naar mappen

RobocopyShortcuts script stuurt Robocopy van Microsoft aan om specifieke mappen op de laptop synchroon te houden met het netwerk. De mappen op het netwerk zijn leidend. De mappen op het netwerk worden “gemirrored” op de laptop. Het gebruik van RobocopyShortcuts script garandeert consistent gebruik van parameters en voorkomt fouten. Daarbij krijgt de eindgebruiker een voorgangsindicator. De eindgebruiker geeft aan welke mappen moeten worden gekopieerd door er een snelkoppeling naartoe te maken.

Robocopy (Robust File and Folder Copy) is een command line tool van Microsoft. De tool is standaard meegeleverd vanaf Windows Vista maar bestaat al langer. Robocopy maakt al vanaf Windows NT onderdeel uit van de resource kits van Windows. Robocopy biedt maar liefst 104 parameters waarmee je exact kunt bepalen wat en hoe je een bestand wilt kopiëren. Je kunt het ook gebruiken voor het maken van backups en dergelijke, zie Kopieerrobot Robocopy maakt al uw back-ups.

Het idee voor RobocopyShortcuts ontstond naar aanleiding van de vraag hoe klantinformatie van specifieke klanten van een netwerk gekopieerd kan worden. In dit scenario waren er duizenden klantmappen onder één hoofddirectory aangemaakt. Iedere klantmap kent een soortgelijke opbouw qua submappen.

Globale werking van RobocopyShortcuts

“RobocopyShortcuts” is een script dat om de tool Robocopy heen geschreven is zodat Robocopy eenvoudig en eenduidig configureerbaar is en een voortgang weergeeft. Het script somt alle snelkoppelingen (shortcuts) die naar een map verwijzen op. Vervolgens kopieert RobocopyShortcuts een aantal in te stellen submappen naar een in te stellen doellocatie op de laptop. De parameters van Robocopy worden zo ingesteld dat de netwerk map gemirrored wordt naar de laptop.

Er worden bij het mirroren alleen bestanden van het netwerk naar de laptops gekopieerd. Er worden geen bestanden van de laptops naar het netwerk gekopieerd of bijgewerkt! Het is dus eenrichtingsverkeer. Hier is helaas één (niet instelbaar in Robocopy) uitzondering op. Als de verantwoordelijke voor de configuratie bestanden heeft laten kopiëren die bij nader inzien niet op de laptop moeten staan dan zal deze de niet te kopiëren map filteren. De logica van Robocopy is dan helaas dat de betreffende map nog wel bestaat op het netwerk en dat deze dus niet verwijderd zal worden van de laptop.

RobocopyShortcuts beschikbaar stellen

RobocopyShortcuts.exe dient gestart te worden met ten minste één parameter, namelijk de verwijzing naar het .ini bestand waar de gebruiker de configuratie in bij houdt. In een Windows Snelkoppeling staat dan bijvoorbeeld:
“\\server\share\applicaties\RobocopyShortcuts\RobocopyShortcuts.exe” “\\server\share\userhome\RobocopyShortcuts.ini”

Daarbij dient robocopy.exe beschikbaar te worden gesteld in de directory waar RobocopyShortcuts is opgeslagen.

Het .ini bestand configureren

Een voorbeeld van de opbouw van het .ini bestand waarmee de eindgebruiker kan aangeven wat naar waar gekopieerd moet worden is:

[GlobalSettings]
ShortcutFolder=H:\Eigen klanten
TargetFolder=D:\Klanten

[SubFoldersToCopy]
1=Advies
2=Officiële documenten
3=Officiele documenten

Bovenstaande configuratie zal:

  • De te gebruiken snelkoppelingen zoeken in de map H:\Eigen klanten
  • De map D:\Klanten als doel gebruiken
  • Submappen met de naam “Advies” of “Officiële documenten” of “Officiele documenten” meekopiëren

Tip: Sla het .ini bestand op in de map waar de snelkoppelingen te vinden zijn, dus bijvoorbeeld “H:\Eigen klanten”.

Snelkoppelingen aanmaken

Maak in bijvoorbeeld de map “H:\Eigen klanten” snelkoppelingen aan naar de te kopiëren mappen. Dit gaat eenvoudig door met de rechtermuisknop te klikken in de Windows Verkenner met de map “H:Eigen klanten” actief. Kies voor Nieuw>Snelkoppeling. Geef de mapnaam van de klant op als “J:\Klanten<klantnaam>”. Windows vult deze automatisch aan.

RobocopyShortcuts dagelijks gebruik

Bij dagelijks gebruik is de map D:\Klanten uit het voorbeeld reeds gevuld door RobocopyShortcuts.

  • De eindgebruiker opent een document ter bewerking. Bij het opslaan blijkt het document readonly waarbij de eindgebruiker beseft dat het document elders moet worden opgeslagen.
  • De eindgebruiker plaatst de aangepaste bestanden handmatig op het netwerk.
  • De eindgebruiker start RobocopyShortcuts om de laptop weer bij te werken.

Na het starten controleert RobocopyShortcuts script of de eindgebruiker toegang heeft tot de te kopiëren mappen en of de mapnamen waar de snelkoppeling naar verwijst nog beschikbaar zijn. Deze kunnen immers verplaatst zijn of van naam veranderd. RobocopyShortcuts geeft dan een foutmelding. De eindgebruiker kan de snelkoppeling aanpassen of verwijderen en RobocopyShortcuts opnieuw uitvoeren.

RobocopyShortcuts script geeft de voorgang van het mirroren weer met een voorgangsbalk door per snelkoppeling de indicator bij te werken.

Er wordt een logbestand bijgehouden in de %temp% map. Robocopy zelf zal gestart worden met de parameters: /S /PURGE /ZB /NP /R:0 /W:0 /LOG+:<naam van de logfile welke is afgeleid van de naam van het .ini bestand>. Als er iets is misgegaan toont RobocopyShortcuts script een popup met het errorlevel nummer van Robocopy erin.

Na het kopiëren worden de bestanden readonly gemaakt zodat de eindgebruiker deze niet per ongeluk op de laptop bijwerkt, waar ze immers weer worden overschreven. De parameter “/A+:R” van Robocopy kan dit ook maar alleen voor nieuw gekopieerde bestanden.

Download RobocopyShortcuts (1.1.004)

Download RobocopyShortcuts executable (of broncode). Robocopy.exe is een standaard onderdeel vanaf Windows 7.

AutoIt

Het script is geschreven en gecompileerd naar een executable met AutoIt (freeware). Het script is ook realiseerbaar als batch file. Een executable heeft echter als voordeel dat er geen ongewenste wijzigingen in kunnen worden doorgevoerd en AutoIt heeft als voordeel dat veel functies reeds voorgedefinieerd zijn.

Geef een reactie

Je reactie verschijnt pas na goedkeuring. Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

Deze site gebruikt Akismet om spam te verminderen. Bekijk hoe je reactie-gegevens worden verwerkt.