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 /?”