@ECHO OFF :: FREEDRIVELETTER :: Small batch file to list all unused drive letters (works ONLY on 2000/XP/2003) :: by Rob van der Woude :: from an idea and minor fixes by Jacopo Lazzari :: http://www.robvanderwoude.com :: Not for Windows 95/98/ME/NT4 IF NOT "%OS%"=="Windows_NT" EXIT VER | FIND "Windows NT" >NUL && EXIT SETLOCAL ENABLEDELAYEDEXPANSION SET ALLDRIVES=A B C D E F G H I J K L M N O P Q R S T U V W X Y Z SET BUSYDRV= SET FREEDRV= :: List drive letters for physical drives FOR %%A IN (%ALLDRIVES%) DO ( FOR /F %%B IN ('MOUNTVOL %%A: /L ^|FINDSTR /C:"\\"') DO ( SET BUSYDRV=!BUSYDRV!,%%A: ) ) :: List drive letters for network drives FOR /F "tokens=2" %%A IN ('NET USE ^|FINDSTR /R /C:" [A-Z]: "') DO SET BUSYDRV=!BUSYDRV!,%%A :: Remove leading comma SET BUSYDRV=%BUSYDRV:~1% :: Remove backslashes SET BUSYDRV=%BUSYDRV:\=% :: Check which drive letters aren't used and list them as free drive letters FOR %%A IN (%ALLDRIVES%) DO ( ECHO.%BUSYDRV% | FIND "%%A:" >NUL IF ERRORLEVEL 1 SET FREEDRV=!FREEDRV!,%%A: ) :: Remove leading comma SET FREEDRV=%FREEDRV:~1% :: Display result SET BUSYDRV FOR %%A IN (%BUSYDRV%) DO ECHO %%A BUSY SET FREEDRV FOR %%A IN (%FREEDRV%) DO ECHO %%A FREE ENDLOCAL