Même après des années d'utilisation j'en reste pleinement satisfait.
Il y a cependant une ombre au tableau.
Si l'on peu utiliser plusieurs disques USB pour faire des backups (disons 1 disque différent par jour), il est impossible d'avoir une lettre de volume unique pour tous ces lecteurs.
On a pas non plus la certitude que l'on aura toujours la même lettre pour un lecteur lorsuq'il est rebranché plus tard.
C'est ennuyant parce que Cobian Backup est intimement lié à la lettre d'identification du volume.
Il reste alors deux solutions possibles:
- Créer une tâche Cobian Backup par disque de backup (en assignant une lettre différente à chaque lecteur)... une approche pas vraiment "pro"
- Utilise un batch qui essaye de re-mapper le lecteur sur une lettre choisie arbitrairement (par exemple Z:)... nettement plus pro
Dans le billet "Usb drivers / Subst solution", j'ai trouvé un batch qui teste l'existence d'un fichier pour détecter le lecteur backup.
Une fois le lecteur détecté, il utilise l'instruction MountVol pour remonter le lecteur sur une lettre arbitrairement choisie.
Hé bien... chapeau bas! Voici une méthode simple et élégante.
@echo off rem ******************************************************** rem changes disk drive letter based off file test rem File/dir To Test For rem ex E:\backup.tag = backup.tag rem ex2 E:\iPod_Control = iPod_Control SET TEST=backup.tag rem Drive to Move To SET DEST=Z: rem Media Name rem ex Backup or "USB STICK" SET NAME=GGBackup rem ******************************************************** echo Testing Destination %DEST% if exist %DEST%\%TEST% goto good if exist %DEST% goto fail_inuse echo Finding %NAME% set DRV=E: echo testing %DRV% if exist %DRV%\%TEST% goto found set DRV=F: echo testing %DRV% if exist %DRV%\%TEST% goto found set DRV=G: echo testing %DRV% if exist %DRV%\%TEST% goto found set DRV=H: echo testing %DRV% if exist %DRV%\%TEST% goto found set DRV=I: echo testing %DRV% if exist %DRV%\%TEST% goto found set DRV=J: echo testing %DRV% if exist %DRV%\%TEST% goto found set DRV=K: echo testing %DRV% if exist %DRV%\%TEST% goto found set DRV=L: echo testing %DRV% if exist %DRV%\%TEST% goto found goto fail :found echo Found %NAME% At %DRV% echo Moving %NAME% To %DEST% FOR /F "delims=" %%x IN ('MOUNTVOL %DRV% /L') DO SET DF=%%x IF "%DF%"=="The system cannot find the file specified." GOTO failmap echo. echo Unmapping Drive %DRV% MOUNTVOL %DRV% /D echo Remapping Drive %DEST% MOUNTVOL %DEST% %DF% echo. Echo Testing %DEST% if exist %DEST%\%TEST% goto good echo Faild Test echo %NAME% Status Unknown goto end :good echo. echo %NAME% Is Properly Located At %DEST% goto end :failmap echo Failed To Reassign Found Drive goto end :fail_inuse echo %DEST% Is Inuse And Not Target Drive echo Remap Failed goto end :fail echo %NAME% Not Found goto end :end
Ce qu'il y a de vraiment bien avec ce batch, c'est que "Cobian Backup" peut l'exécuter juste avant la tâche de backup :-)))
RemoveDrive
N'essayez pas de démonter votre clé USB avec mountvol, vous allez avoir une sacré surpris!!!
MountVol est un peu trop radical et le périphérique n'est plus remonté lorsqu'il est rebranché (voir l'autre article publié ce jour).
Pour démonter un Volume en toute sécurité, il faut utiliser le programme RemoveDrive qui fonctionne à merveille.
RemoveDrive peut être trouvé ici http://www.uwe-sieber.de/drivetools_e.html
UnMapDrive
Sur base du premier script, ce dernier à été modifié pour appeler la commande RemoveDrive.exe au lieu de MountVol.
Il teste l'existence d'un fichier (backup.tag) et démonte ensuite le volume.
C'est une version vite fait... mais un bon début ;-)
@echo off rem ******************************************************** rem changes disk drive letter based off file test rem File/dir To Test For rem ex E:\backup.tag = backup.tag rem ex2 E:\iPod_Control = iPod_Control SET TEST=backup.tag rem Drive to Move To SET DEST=Z: rem Media Name rem ex Backup or "USB STICK" SET NAME=GGBackup rem ******************************************************** echo Testing Destination %DEST% if exist %DEST%\%TEST% goto good if exist %DEST% goto found echo Finding %NAME% set DRV=E: echo testing %DRV% if exist %DRV%\%TEST% goto found set DRV=F: echo testing %DRV% if exist %DRV%\%TEST% goto found set DRV=G: echo testing %DRV% if exist %DRV%\%TEST% goto found set DRV=H: echo testing %DRV% if exist %DRV%\%TEST% goto found set DRV=I: echo testing %DRV% if exist %DRV%\%TEST% goto found set DRV=J: echo testing %DRV% if exist %DRV%\%TEST% goto found set DRV=K: echo testing %DRV% if exist %DRV%\%TEST% goto found set DRV=L: echo testing %DRV% if exist %DRV%\%TEST% goto found goto fail :found echo Found %NAME% At %DRV% echo Moving %NAME% To %DEST% rem FOR /F "delims=" %%x IN ('MOUNTVOL %DRV% /L') DO SET DF=%%x rem IF "%DF%"=="The system cannot find the file specified." GOTO failmap echo. echo Unmapping Drive %DRV% removedrive.exe %DRV% goto end :good echo. echo %NAME% Is Properly Located At %DEST% echo Unmapping Drive %DEST% c:\dev\removedrive.exe %DEST% goto end rem :failmap rem echo Failed To Reassign Found Drive rem goto end :fail echo %NAME% Not Found goto end :end
Aucun commentaire:
Enregistrer un commentaire