2017-05-24 34 views
1

我試圖獲取閃存驅動器上的驅動器號和文件路徑,但閃存驅動器的驅動器號更改(f,g,k)取決於它插入的USB端口。如何修復我的VBScript以啓動.bat腳本,而不管其驅動器號?如何使用.vbs運行bat文件並在閃存驅動器上獲取其路徑

Set shell = WScript.CreateObject("WScript.Shell") 
shell.Run("%drive%:\Folder\run.bat"), 0 , True 
+0

的可能的複製簡化這個[參考卷/通過標籤驅動器](https://stackoverflow.com/questions/9065280/reference-a-volume-drive-by-label) – AWinkle

+1

您正在混合批處理和vbs語法,我不清楚你在做什麼。這是一個批處理/ vbs運行,你想知道它是自己的位置?或者,您是否正在從HD運行批次/ vbs併爲pendrive尋找正確的驅動器號? @ AWinkle的鏈接顯示了一種定義標籤的方式。 – LotPings

回答

0

你可以通過所有驅動器環路和檢查\folder\run.bat是否存在。

另外,see this page用於VBScript Run方法的語法。

Set shell = WSH.CreateObject("WScript.Shell") 
Set fso = WSH.CreateObject("Scripting.FileSystemObject") 
Set drives = fso.Drives 

For Each drive in drives 
    batfile = drive.DriveLetter & ":\folder\run.bat" 
    if fso.FileExists(batfile) Then Exit For 
Next 

If not fso.FileExists(batfile) Then 
    WSH.Echo("bat script not found.") 
    WSH.Quit(1) 
End If 

WSH.Echo("found it: " & batfile) 
shell.Run batfile, 0, True 

你可能也被認爲是限制你的搜索只removable drives,而是被分配閃存驅動器的驅動器1類型不能保證。我有一個快速USB 3.0閃存驅動器,驅動器類型爲2,與我的內部硬盤驅動器相同。


如果VBScript的將是在同一目錄或同一驅動器中的.bat腳本,可以極大地使用類似

Dir = fso.GetParentFolderName(WSH.ScriptFullName) 
Drive = fso.GetFolder(Dir).Drive.DriveLetter 
相關問題