Тайна "непослушных" файлов.
Глава первая. Разгадка тайны.
Имена Ваших файлов не соответствуют формату 8.3 (то есть число символов в самом имени больше 8-ми, или (и) в нём присутствуют пробелы, неанглийские буквы, неклавиатурные символы или (и) символ "№").
Для интерпретатора Командной строки файлы с такими именами присутствуют как бы в двух ипостасях -- как файл с обычным именем и как файл с коротким именем, оканчивающимся в Вашем случае на "~1".
Поэтому файлы с обычными именами, оканчивающимися на "0" всё-таки перемещаются в папку "0", несмотря на то, что короткие имена Ваших файлов, как уже сказано, оканчиваются на "1" ("~1"), так как в порядке выполнения сценария перемещение в папку "0" является первой командой, а вот все остальные файлы, независимо от того, на что оканчивается обычное имя, перемещаются в папку "1", соответствующую цифре, на которую оканчиваются их короткие имена.
При попытке выполнения команд для перемещения файлов в папки с именами от "2" до "9" происходит ошибка, так как соответствующие файлы уже отсутствуют в исходной папке, будучи перемещёнными ранее.
Глава вторая (и последняя). Что делать?
Нужно стараться не использовать команды с подстановочными знаками из "школьного" курса "батаники".
Вот решение Вашей задачи:
Код:

@echo off
for /l %%i in (0 1 9) do 2>nul (
for /f "delims=" %%j in ('dir/a-d/b "*%%i.jpg" "*%%i.txt"^| findstr/irc:"^.*%%i\....$"') do (
md "%%i"& move "%%j" "%%i\"
)
)
exit/b 0
.