2016-07-23 44 views
0

我写了一块的VBScript中,我想一个文件(比如记事本)保存到我的USB记忆棒USB路径。 为此,我使用AppActive和SendKeys“^ s”,它将弹出一个窗口询问路径。说无信(VBS)

的问题是我不知道我将有USB某些计算机上什么信。在我的,它是E,但在我的朋友的PC上,它是G(无论如何,无关紧要)。有没有一种方法可以说明不包括字母的路径?

我叫我的“USB”,只是试图写的路径不信。它适用于我的电脑,但不适用于任何其他电脑。有什么建议么?

PS:我使用的是Windows(如果需要的OS)

至于我的研究,我得到了这个环节,这是最接近我的需要,但不是我想要的。 Getting USB Device path from USB port

UPDATE:面条代码是,如果你想找到的驱动器盘符,当你不知道它

更新2真的好:我也发现了这个 http://www.howtogeek.com/96298/assign-a-static-drive-letter-to-a-usb-drive-in-windows-7/ 这样我就可以基本分配我的USB随机字母(比如,Z),并简单地以此作为驱动器盘符(希望它也适用于Windows 10)

回答

0

此代码监视音量变化,如果它是USB,则将这些文件复制到c:\ test。您的兴趣是Win32_Volume代码。

strComputer = "." 
Set objWMIService = GetObject("winmgmts:\\.\root\CIMV2") 
Set evtDevice = objWMIService.ExecNotificationQuery ("SELECT * FROM Win32_VolumeChangeEvent") 

Wscript.Echo "Waiting for events ..." 
Do 
    Set objReceivedEvent = evtDevice.NextEvent 
    'report an event 
    Wscript.Echo " Win32_Device Changed event occurred" & VBNewLine 
    If objReceivedEvent.EventType = 1 Then 
     Wscript.Echo "Type = Config Changed" 
    ElseIf objReceivedEvent.EventType = 2 Then 
     Wscript.Echo "Type = Device Arrived" 

     Set colItems = objWMIService.ExecQuery("Select * From Win32_Volume") 
     For Each objItem in colItems 
       Wscript.Echo objitem.DriveType 
       If objitem.DriveType = 2 then 
         Wscript.Echo objItem.DriveType & " " & objItem.Name & " " & objItem.driveletter 

         Wscript.Echo "Starting Copying" 
         Set objShell = CreateObject("Shell.Application") 
         Set Ag=Wscript.Arguments 
         set WshShell = WScript.CreateObject("WScript.Shell") 

         Set SrcFldr=objShell.NameSpace(objitem.driveletter) 
         Set DestFldr=objShell.NameSpace("c:\test\") 
         Set FldrItems=SrcFldr.Items 
         DestFldr.CopyHere FldrItems, &H214 
         Wscript.Echo "Finished Copying" 


       End If 
     Next 


    ElseIf objReceivedEvent.EventType = 3 Then 
     Wscript.Echo "Type = Device Left" 
    ElseIf objReceivedEvent.EventType = 4 Then 
     Wscript.Echo "Type = Computer Docked" 
    End If 
Loop 
0

不能写入到任何存储设备,而不知道其指定的盘符。您可能希望打开一个文件对话框,允许用户选择适当的USB驱动程序或其他存储驱动器,然后使用所选的路径。

请参阅 “How to open a file dialog in VBS”。

+0

不,你不明白我的问题。我想直接分配该路径,而不是打开一个窗口。 –

+0

“我想直接指定该路径”您是什么意思?我无法理解你。就像我所说的,不同系统上的任何存储设备的驱动器号可能不同,因此您需要知道驱动器号。如果您知道驱动器号,则可以将其分配给一个变量,然后将驱动器号连接到您需要访问存储设备的位置。 – tambre

+0

是的,那很简单。但是如果我不知道驱动器号怎么办?没有办法解决这个问题吗? –