Nächsten unbenutzten Laufwerksbuchstaben ermitteln mit VBScript

Nächsten unbenutzten Laufwerksbuchstaben ermitteln mit VBScript

Funktion „GetNextFreeDriveLetter“
Name: GetNextFreeDriveLetter
Beschreibung: Funktion ermittelt den nächsten unbenutzten Laufwerksbuchstaben
Parameter: keine
Rückgabe: string (nächster freie Laufwerksbuchstabe)

function GetNextFreeDriveLetter
    ' ********************************************************************************
    ' NAME:        GetNextFreeDriveLetter
    '
    ' DESCRIPTION: Gets the next free drive letter
    '
    ' PARAMETERS:  none
    '
    ' RETURN:      string (next free drive letter)
    ' ********************************************************************************
    
    dim oWSHShell : set oWSHShell = WScript.CreateObject("WScript.Shell")
    dim oExec : set oExec = oWSHShell.Exec("wmic logicaldisk get caption")
    dim sResult
    dim sDriveLetter
    dim i
    dim sFreeDriveLetter
    
    i = 0
    do while (oExec.Status = 0) and (i <= 60)
        WScript.Sleep 1000
        i = i + 1
    loop
    if i < 60 then
        sResult = ucase(trim(oExec.StdOut.ReadAll))
        for i = 67 to 90
            sDriveLetter = Chr(i) & ":"
            if not (instr(sResult,sDriveLetter) > 0) then
                sFreeDriveLetter = sDriveLetter
                exit for
            end if
        next
    else
        oExec.Terminate()
        sFreeDriveLetter = ""
    end if
    
    GetNextFreeDriveLetter = sFreeDriveLetter
end function