Если у вас во всех файлах это префикс (20495BW) фиксированной длины (7 символов), то можно воспользоваться конструкцией выделения подстроки. Она описана в справке по команде set /?
Но, учитывая, что имя файла у вас находится в переменной цикла, то напрямую эту конструкцию применить нельзя - нужно предварительно значение %%a присвоить обычной переменной:
@echo off
setlocal ENABLEDELAYEDEXPANSION
for %%a in (*.jpg) do (
set "dirname=%%~na"
set "dirname=!dirname:~,7!"
md "!dirname!"& move "%%~a" "!dirname!\%%~nxa"
)
Но если количество символов до символа подчеркивания может быть разным, то вышеописанный способ не подойдет. В таком случае для разделения имени на части (с разделителем "_") нужно применить for /f:
@echo off
for %%a in (*_*.jpg) do (
for /f "tokens=1 delims=_" %%b in ("%%~na") do (md "%%b"& move "%%~a" "%%b\%%~nxa")
)
При необходимости можно задать несколько символов разделителей - запишите их друг за другом в параметре delims вложенного цикла.