@ECHO OFF :: Checks if %1 is a valid device name. ECHO. IF "%1"=="" GOTO Syntax IF "%1"=="/?" GOTO Syntax :: DOS or NT? VER | FIND "Windows NT" >NUL IF ERRORLEVEL 1 GOTO DOS :NT :: Based on the fact that DIR doesn't show a volume label for devices DIR %1 2>NUL | FIND /I "Volume" >NUL IF ERRORLEVEL 1 ECHO %1 is a valid NT device name IF NOT ERRORLEVEL 1 ECHO %1 is NOT a valid NT device name GOTO End :DOS :: Based on the assumption that DIR displays :: no "file" date and time for devices. :: But first check AUX, CON and PRN, that are :: displayed with the current time and date. :: Sorry, this isn't a very elegant solution. :: If you know a better way, I'm all ears... SET OPATH=%PATH% PATH %1 SET DEVICE=%PATH% PATH %OPATH% SET OPATH= IF "%DEVICE%"=="AUX" GOTO Valid IF "%DEVICE%"=="CON" GOTO Valid IF "%DEVICE%"=="PRN" GOTO Valid DIR \%DEVICE% | FIND "%DEVICE%" >NUL IF ERRORLEVEL 1 GOTO Invalid DIR \%DEVICE% | FIND "%DEVICE%" | FIND ":" >NUL IF NOT ERRORLEVEL 1 GOTO Invalid DIR \%DEVICE% | FIND "%DEVICE%" | FIND "." >NUL IF NOT ERRORLEVEL 1 GOTO Invalid DIR \%DEVICE% | FIND "%DEVICE%" | FIND "-" >NUL IF NOT ERRORLEVEL 1 GOTO Invalid DIR \%DEVICE% | FIND "%DEVICE%" | FIND "/" >NUL IF NOT ERRORLEVEL 1 GOTO Invalid :Valid ECHO.%DEVICE% is a valid device name GOTO End :Invalid ECHO.%DEVICE% is NOT a valid device name GOTO End :Syntax ECHO IsDev, Version 2.00 for NT and DOS ECHO Checks if the specified parameter is a valid device name ECHO. ECHO Usage: ISDEV device_name :End SET DEVICE= ECHO.