Я вижу множество синтаксических ошибок. Например, апострофы и плюсы в теле цикла. У for должен быть либо ключ /f, либо не команда, а список файлов (шаблон: в данном случае, по-моему, просто *) в скобках.
Файлы *.pl не являются исполняемыми в Windows, поэтому скрипт просто так не запустится.
Запустятся после сопоставления в реестре расширению имени файла исполняющего приложения. Причём можно самому не править реестр, а попробовать открыть файл в Проводнике и выбрать приложение, с помощью которого всегда открывать файлы с таким расширением.
Воля ваша.
Но я о том, что судя по всему (не проверял) в случае, если id состоит только из цифр, оба правила должны действовать одинаково (но первое будет срабатывать и в других случаях).
for
должен быть либо ключ/f
, либо не команда, а список файлов (шаблон: в данном случае, по-моему, просто*
) в скобках.