X.509, а куда пропало присвоение переменной ExcList ? Понятно, что файл в цикле for /F не найден.
Там ведь изначально стоял код:
Код:

::Файл-список исключений каталогов любой степени вложенности
Set ExcList=L:\bash\test\Exclude.txt
А вот почему ругань на метку check - не знаю, у меня этот же код на неё не ругается.
Я добавил текст, который у вас пропал, вот что получилось:
Код:

@echo off
Setlocal EnableDelayedExpansion EnableExtensions
Set Src=C:
set mask=*.txt
::Файл-список исключений каталогов любой степени вложенности
Set ExcList=L:\bash\test\Exclude.txt
Call :Init
Call :AllFolders "%Src%"
pause
Goto :eof
::Переписываем содержимое файла в массив (ускорение операций)
:Init
For /f "UseBackQ Delims=" %%A in ("%ExcList%") do (
Set /A n+=1
Set Ex!n!=%%A
)
Exit /b
::Обходим папки рекурсивно
:AllFolders
Call :Check "%~1"
if %errorlevel%==1 Exit /B
For /f "delims=" %%A in ('dir /b /a:d "%~1"') do (
Call :AllFolders "%~1\%%A"
)
::Проверка не удаляем ли рабочий каталог
if /i "%~1" neq "%Src%" Echo del /q "%~1"\%mask%
Exit /b
::Проверить есть ли переданный как аргумент каталог в массиве
:Check
For /L %%A in (1,1,%n%) do (
if /i "%~1"=="!Ex%%A!" Exit /B 1
)
Exit /b 0
И у меня это работает.