Skip to main content

NIX Basename, Filename, Dirname Command Equivalents in Windows Batch Script.

@echo off
setlocal

set filepath="C:\some path\having spaces.txt"

for /F "delims=" %%i in (%filepath%) do set dirname="%%~dpi"
for /F "delims=" %%i in (%filepath%) do set filename="%%~nxi"
for /F "delims=" %%i in (%filepath%) do set basename="%%~ni"

echo %dirname%
echo %filename%
echo %basename%

endlocal
exit /b %errorlevel%