あなたはできたすべてのドライブをループし\folder\run.bat
が存在するかどうかを確認してください。
また、VBScript Run
メソッドの構文についてはsee this pageです。
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
が重複する可能性のようなものを使用することによって大幅にこれを簡素化することができ[/ボリュームを参照ラベルによるドライブ](https://stackoverflow.com/questions/9065280/reference-a-volume-drive-by-label) – AWinkle
あなたはバッチ構文とvbs構文を混同していますが、あなたが何をしているのかはわかりません。それはバッチ/ VBの実行とあなたはそれが自分の場所を知りたいですか?または、HDからバッチ/ vbsを実行して、pendriveのドライブ文字を探していますか? @ AWinkleのリンクは、探すラベルを定義する方法を示しています。 – LotPings