@ECHO OFF IF [%1]==[] GOTO Syntax IF NOT EXIST "%~1" GOTO Syntax SETLOCAL PUSHD "%~dp1" >NUL 2>&1 IF ERRORLEVEL 1 ( POPD GOTO Syntax ) COMMAND /C TRUENAME >NUL 2>&1 DIR /AD "%~nx1?" >NUL 2>&1 IF ERRORLEVEL 1 ( CALL :GetShortFileName "%~nx1" ) ELSE ( CD "%~nx1" >NUL 2>&1 IF ERRORLEVEL 1 ( CALL :GetShortDirName "%~nx1" ) ELSE ( COMMAND /C TRUENAME ) ) POPD ENDLOCAL GOTO:EOF :GetShortDirName ECHO. :: DIR /AD /X "%~1?" lists directory names instead of content; further :: filtering necessary in case more than one directory meets "%~1?" FOR /F "tokens=4*" %%A IN ('DIR /AD /X "%~1?" 2^>NUL ^| FIND /I "%~1"') DO ( IF /I "%%A"=="%~1" SET SFN=%%A IF /I "%%B"=="%~1" SET SFN=%%A ) ECHO.%CD%\\ | FIND "\\\" >NUL IF ERRORLEVEL 1 (ECHO.%CD%\%SFN%) ELSE (ECHO.%CD%%SFN%) GOTO:EOF :GetShortFileName ECHO. FOR /F "tokens=4" %%A IN ('DIR /A /X "%~1" 2^>NUL ^| FIND /I "%~1"') DO SET SFN=%%A ECHO.%CD%\\ | FIND "\\\" >NUL IF ERRORLEVEL 1 (ECHO.%CD%\%SFN%) ELSE (ECHO.%CD%%SFN%) GOTO:EOF :Syntax ECHO. ECHO SFN, Version 1.00 for Windows NT 4 / 2000 / XP ECHO Uses TRUENAME to display Short File Name of specified file or directory ECHO. ECHO Usage: SFN ^ ECHO Where: "file_name" is a file or directory name ^(name only, ECHO fully qualified path or relative path are all valid^) ECHO. ECHO Notes: [1] Requires access to the directory that contains the ECHO specified file or directory name. ECHO [2] Enclose path and/or file name in quotes if they contain ECHO spaces or other delimiters ^( + ; , ^) or "forbidden" ECHO characters ^( ^& ^| ^< ^> ^). ECHO. ECHO Inspired by a tip from Denis Rouleau ECHO Written by Rob van der Woude ECHO http://www.robvanderwoude.com