VBS将目录复制到活动USB驱动器



希望拥有一个可以将文件夹及其内容复制到活动usb驱动器的vbscript。因此,脚本需要找到放入其中的活动usb驱动器。接下来,将文件夹及其竞争复制到usb驱动器。然后在复制工作完成后,它需要告诉它已经完成了。这就是我目前所能得到的。

Const OverWriteFiles = True
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.CopyFolder "C:Test" , "?:Test" , OverWriteFiles 'the "?:Test" is the part set the usb drive at.
Wscript.Echo "I am Done."

所以,我真正需要帮助的部分是找出活动的usb驱动器号。下一步是复制到usb驱动器号。我知道这不是很多代码。但是,任何信息都会有很大的帮助。

此示例显示每个驱动器的类型:

Set oFSO = CreateObject("Scripting.FileSystemObject")
sRes = ""
For Each oDrive In oFSO.Drives
    sRes = sRes & "DriveLetter: " & oDrive.DriveLetter & ", DriveType: "
    Select Case oDrive.DriveType
        Case 0
            sRes = sRes & "Unknown"
        Case 1
            sRes = sRes & "Removable"
        Case 2
            sRes = sRes & "HDD"
        Case 3
            sRes = sRes & "Network Drive"
        Case 4
            sRes = sRes & "CD-ROM"
        Case 5
            sRes = sRes & "RAM-Drive"
    End Select
    sRes = sRes & vbNewLine
Next
MsgBox sRes

你的脚本应该是这样的:

Set objFSO = CreateObject("Scripting.FileSystemObject")
For Each objDrive In objFSO.Drives
    If objDrive.DriveType = 1 Then
        objFSO.CopyFolder "C:Test" , objDrive.DriveLetter & ":Test" , True
        MsgBox "Copy to " & objDrive.DriveLetter & " Completed"
    End If
Next

UPD:最后一个驱动器可以这样找到:

Set objFSO = CreateObject("Scripting.FileSystemObject")
For Each objDrive In objFSO.Drives
    Set objLastDrive = objDrive
Next
MsgBox objLastDrive.DriveLetter

嗯,可能有多个"活动"USB驱动器。没有什么能阻止我将闪存驱动器插入电脑上的每个可用USB端口。但以下是如何识别计算机上的USB驱动器(也称为"可移动驱动器"),并使用CopyFolder()功能将文件夹复制到其中。

Const TYPE_REMOVABLE = 1
With CreateObject("Scripting.FileSystemObject")
    For Each Drive In .Drives
        If Drive.DriveType = TYPE_REMOVABLE Then
            .CopyFolder "C:Test", Drive.DriveLetter & ":Test", True
        End If
    Next
End With

最新更新