Backup karty Flash

Jeżeli używasz jakiegoś urządzenia wyposażonego w kartę flash i chciałbyś robić okresowo jej kopię to proponuję rozwiązanie, które jest niezależne od litery dysku, który zostanie przyznany karcie. Backup opiera się głównie na jej numerze seryjnym.

Potrzebny będzie także program Robocopy. Zdaje się, że od systemi MS Vista i nowszych jest zainstalowany razem z systemem, gdyby go jednak nie było polecam ten link Windows Server 2003 Resource Kit Tools lub każdy inny Resource Kit Tools.

Skrypt kopiujący wygląda następująco:

Option Explicit
Dim FlashDriveSerial
FlashDriveSerial = "1B41678D"
Dim WshShell,FSO,Drv
Dim Dname,Dserial,Dinfo
Dim wshSystemEnv
Set WshShell=WScript.CreateObject("WScript.Shell")
Set FSO=CreateObject("Scripting.FileSystemObject")
For each Drv in FSO.Drives
If Drv.IsReady Then
 If Hex(Drv.SerialNumber) = FlashDriveSerial Then
 Dinfo=Drv.DriveLetter
 WShShell.Run "robocopy.exe "& Dinfo&":\ .\GPX_BACKUP /LOG+:GARMINVISTA_SYNCH.log", 6, True
 End If
End If
Next

Jedyne zmiany które trzeba wprowadzić to numer seryjny karty flash oraz ścieżki do folderów z danymi, zarówno źródłowym jak i docelowym.

Numer seryjny można obejrzeć uruchamiając inny skrypt, ze strony Bill’a James’a pod tytułem: Get Information About Your Drives. Ewentualnie dostępny jest u mnie: DriveInfo.
Skrypt pokazuje wszystkie napędy, a nas interesuje tylko jeden. Sprawdzamy pod jaką literą dysku znajduje się aktualnie zamontowany flash drive i z tego dysku przypisujemy pole Serial Number do zmiennej FlashDriveSerial.

W linijce:
WShShell.Run “robocopy.exe “& Dinfo&”:\ .\GPX_BACKUP /LOG+:GARMINVISTA_SYNCH.log”, 6, True
Ustawiamy odpowiednio ścieżki do folderów i uruchamiamy skrypt.
Więcej o ustawieniach ścieżek i parametrów programu Robocopy: “Robocopy.exe /?”