@ECHO OFF SETLOCAL ENABLEEXTENSIONS TITLE "Drive Properties written by Zharif" :: Delete already existing variables (SET LOG=&SET QDrv=&SET QType=&SET QAccess=&SET _Removable=&SET _Fixed=&SET _NET=&SET _OPTICAL=) :: Enable/Disable logging (empty to disable) (SET LOG=Log.txt) ECHO.&SET /P LOGGING=Enable logging[Y]? Press any other key for No. IF /I "%LOGGING%"=="Y" (TYPE NUL >%LOG%) CLS :: Tasks: Set Drives to query (default is a range of drive letters-case insensitive) (SET QDrv=[C-Zc-z]) :: Tasks: Set Drive Type[s] to query (default is a range between 2-5) - 2=Removable 3=Fixed 4=Network 5=CD/DVD (SET QType=[2-5]) :: Tasks: Set Access Mode to query - empty=noMedia 0=WriteAccess 1=Locked (SET QAccess=[ 0-1]) :: _____________________________________________________________________________ :: ECHO.&ECHO Searching for DriveTypes of drive letter[s] using WMIC.&ECHO. IF /I NOT EXIST "%SystemRoot%\system32\wbem\wmic.exe" echo WMIC.EXE could not be found ...exit here&PAUSE>NUL&GOTO:_END ECHO Please wait...&ECHO. FOR /F "tokens=2 delims==" %%a IN ('WMIC LogicalDisk Get /Format:list^|FINDSTR /R /C:"DeviceID=%QDRV%:"') DO ( FOR /F "tokens=2 delims==" %%A IN ('WMIC LogicalDisk Where "DeviceID='%%~a'" Get /Format:list^|FINDSTR /R /C:"DriveType=%QTYPE%"') DO ( REM CALL ECHO DeviceID: %%a DriveType: %%A CALL ECHO %%~A|FINDSTR "2" 1>NUL&& IF NOT DEFINED _DRV_REMOVABLE (CALL SET _DRV_REMOVABLE=%%~a) ELSE (CALL SET _DRV_REMOVABLE=%%_DRV_REMOVABLE%% %%~a) CALL ECHO %%~A|FINDSTR "3" 1>NUL&& IF NOT DEFINED _DRV_FIXED (CALL SET _DRV_FIXED=%%~a) ELSE (CALL SET _DRV_FIXED=%%_DRV_FIXED%% %%~a) CALL ECHO %%~A|FINDSTR "4" 1>NUL&& IF NOT DEFINED _DRV_NET (CALL SET _DRV_NET=%%~a) ELSE (CALL SET _DRV_NET=%%_DRV_NET%% %%~a) CALL ECHO %%~A|FINDSTR "5" 1>NUL&& IF NOT DEFINED _DRV_OPTICAL (CALL SET _DRV_OPTICAL=%%~a) ELSE (CALL SET _DRV_OPTICAL=%%_DRV_OPTICAL%% %%~a) ) ) SET ERRMSG=ECHO No drive letter and/or its DriveType found ...exit here&ECHO. SET _DRV_ >NUL 2>&1||%ERRMSG%&&PAUSE>NUL&&GOTO:_END FOR /F "tokens=2 delims==" %%a IN ('WMIC LogicalDisk Get /Format:list^|FINDSTR /R /C:"DeviceID=%QDRV%:"') DO ( FOR /F "tokens=2 delims==" %%A IN ('WMIC LogicalDisk Where "DeviceID='%%~a'" Get /Format:list^|FINDSTR /R /C:"Access=*"') DO ( CALL ECHO .%%~A.|FINDSTR /L ".." 1>NUL&& IF NOT DEFINED _DRV_NMEDIA (CALL SET _DRV_NMEDIA=%%~a) ELSE (CALL SET _DRV_NMEDIA=%%_DRV_NMEDIA%% %%~a) CALL ECHO %%~A|FINDSTR "0" 1>NUL&& IF NOT DEFINED _DRV_RW (CALL SET _DRV_RW=%%~a) ELSE (CALL SET _DRV_RW=%%_DRV_RW%% %%~a) CALL ECHO %%~A|FINDSTR "1" 1>NUL&& IF NOT DEFINED _DRV_R (CALL SET _DRV_R=%%~a) ELSE (CALL SET _DRV_R=%%_DRV_R%% %%~a) ) ) ECHO Removable Drives: %_DRV_REMOVABLE% ECHO Fixed Drives: %_DRV_FIXED% ECHO Network Drives: %_DRV_NET% ECHO CD/DVD Drives: %_DRV_OPTICAL% ECHO. ECHO No Media: %_DRV_NMEDIA% ECHO Write Access: %_DRV_RW% ECHO Locked: %_DRV_R% ECHO.&ECHO. ECHO Drives: Access Type VolumeName: ECHO __________________________________________________ ECHO. FOR /F "tokens=2 delims==" %%a IN ('WMIC LogicalDisk Get /Format:list^|FINDSTR /R /C:"DeviceID=%QDRV%:"') DO ( FOR /F "tokens=2 delims==" %%Z IN ('WMIC LogicalDisk Where "DeviceID='%%~a'" Get /Format:list^|FINDSTR /R /C:"VolumeName=."') DO ( FOR /F "tokens=2 delims==" %%Y IN ('WMIC LogicalDisk Where "DeviceID='%%~a'" Get /Format:list^|FINDSTR /R /C:"Access=*"') DO ( CALL ECHO %%a %%Y %%Z ) ) ) ECHO __________________________________________________ :: _____________________________________________________________________________ :: :_END ECHO. CMD /K EXIT