O comando for não suporta expressões regulares.
Supondo que todos os arquivos contenham um caractere - , você provavelmente poderá usar esse código em um arquivo em lotes:
for /f "delims=- tokens=1* usebackq" %%a in ('dir /b *.png') do (
if not exist "%%a" mkdir "%%a"
move "%%a-%%b" "%%a"
)
delims=- dividirá os nomes dos arquivos em - , fornecendo o nome do diretório que será criado se ainda não existir. Em seguida, o nome do arquivo original, %%a-%%b , será movido para esse diretório.