Batch file not getting the first 5 characters in drop file filename
IF you want to declare variables and use this same variables inside for loops or if's you have to use delayed Expansion ex:
SetLocal EnableDelayedExpansion
Also you have to substitute %
by !
set "oldName=%%~nf"
set "newName=!oldName:~0,5!"
mkdir "%HOMEPATH%\Desktop\BACK-UP DATA\!newName!\COPY"