我有这个可视化的基本脚本,允许我在插入机器时复制USB驱动器中的所有内容。
'Sauvegarde automatique des clés USB et SDCARD dés leurs insertion.
'Ce Programme sert à copier automatiquement chaque clé USB nouvellement insérée ou bien une SDCard.
'Il sert à faire des Sauvegardes incrémentielles de vos clés USB.
'Pour chaque clé USB, il crée un dossier de cette forme "NomMachine_NomVolumeUSB_NumSerie" dans le dossier %AppData% et
'il fait une copie totale pour la première fois, puis incrémentielle , càd ,il copie juste les nouveaux fichiers et les fichiers modifiés.
'Crée le 23/09/2014 © Hackoo
Option Explicit
Do
Call AutoSave_USB_SDCARD()
Pause(30)
Loop
'********************************************AutoSave_USB_SDCARD()************************************************
Sub AutoSave_USB_SDCARD()
Dim Ws,WshNetwork,NomMachine,AppData,strComputer,objWMIService,objDisk,colDisks
Dim fso,Drive,NumSerie,volume,cible,Amovible,Dossier,chemin,Command,Result
Set Ws = CreateObject("WScript.Shell")
Set WshNetwork = CreateObject("WScript.Network")
NomMachine = WshNetwork.ComputerName
AppData= ws.ExpandEnvironmentStrings("%AppData%")
cible = AppData & "\"
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colDisks = objWMIService.ExecQuery _
("SELECT * FROM Win32_LogicalDisk")
For Each objDisk in colDisks
If objDisk.DriveType = 2 Then
Set fso = CreateObject("Scripting.FileSystemObject")
For Each Drive In fso.Drives
If Drive.IsReady Then
If Drive.DriveType = 1 Then
NumSerie=fso.Drives(Drive + "\").SerialNumber
Amovible=fso.Drives(Drive + "\")
Numserie=ABS(INT(Numserie))
volume=fso.Drives(Drive + "\").VolumeName
Dossier=NomMachine & "_" & volume &"_"& NumSerie
chemin=cible & Dossier
Command = "cmd /c Xcopy.exe " & Amovible &" "& chemin &" /I /D /Y /S /J /C"
Result = Ws.Run(Command,0,True)
end if
End If
Next
End If
Next
End Sub
'***************************************Fin du AutoSave_USB_SDCARD()*********************************************
'****************************************************************************************************************
Sub Pause(Sec)
Wscript.Sleep(Sec*1000)
End Sub
'****************************************************************************************************************
我需要修改它,以便它只复制带有.doc和.pdf扩展名的文件。
答案 0 :(得分:1)
尝试修改此脚本: AutoSave_USB_SDCARD.vbs
'Automatic backup USB sticks and SD CARD dice their insertion.
'This program is used to automatically copy each newly inserted USB key or a SDCard.
'It is used to make incremental backups of your USB key.
'For each USB drive, it creates a folder for this form "ComputerName_VolumeUSB_SerialNumber" in the D:\USB_Backup folder and
'It is a total copy first and then incrementally, ie, it just copies the new files and changed files.
'Created on 23/09/2014 © Hackoo
'04/02/2016
'Edited and translated from french to english and changed the directory target to be copied to D:\USB_Backup
'And copies only the files with .doc .docx and .pdf extensions
Option Explicit
Do
Call AutoSave_USB_SDCARD()
Pause(30)
Loop
'********************************************AutoSave_USB_SDCARD()************************************************
Sub AutoSave_USB_SDCARD()
Dim Ws,WshNetwork,ComputerName,strComputer,objWMIService,objDisk,colDisks
Dim fso,Drive,SerialNumber,volume,Target,Amovible,Folder,Command1,Command2,Command3,Result1,Result2,Result3
Set Ws = CreateObject("WScript.Shell")
Set WshNetwork = CreateObject("WScript.Network")
ComputerName = WshNetwork.ComputerName
Target = "D:\USB_Backup"
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colDisks = objWMIService.ExecQuery _
("SELECT * FROM Win32_LogicalDisk")
For Each objDisk in colDisks
If objDisk.DriveType = 2 Then
Set fso = CreateObject("Scripting.FileSystemObject")
For Each Drive In fso.Drives
If Drive.IsReady Then
If Drive.DriveType = 1 Then
SerialNumber=fso.Drives(Drive + "\").SerialNumber
Amovible=fso.Drives(Drive + "\")
SerialNumber=ABS(INT(SerialNumber))
volume=fso.Drives(Drive + "\").VolumeName
Folder=ComputerName & "_" & volume &"_"& SerialNumber
Target=Target &"\"& Folder
Command1 = "cmd /c Xcopy.exe " & Amovible &"\*.pdf "& Target &" /I /D /Y /S /J /C"
Command2 = "cmd /c Xcopy.exe " & Amovible &"\*.doc "& Target &" /I /D /Y /S /J /C"
Command3 = "cmd /c Xcopy.exe " & Amovible &"\*.docx "& Target &" /I /D /Y /S /J /C"
Result1 = Ws.Run(Command1,0,True)
Result2 = Ws.Run(Command2,0,True)
Result3 = Ws.Run(Command3,0,True)
end if
End If
Next
End If
Next
End Sub
'****************************************************************************************************************
Sub Pause(Sec)
Wscript.Sleep(Sec*1000)
End Sub
'****************************************************************************************************************