2016-07-23 46 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

是的,那很簡單。但是如果我不知道驅動器號怎麼辦?沒有辦法解決這個問題嗎? –