Код:

Call :get_params_from_main_config "D:\codes\common\init_environment.sas" ""lasr_port" "lasr_host""
Вызов Call :get_params_from_main_config "Имя анализируемого файла" "Список искомых параметров"
Список искомых параметров в виде ""Парам1" "Парам2" ..."ПарамN""
После работы процедуры получим переменные, которым присвоены найденные (если они есть) значения
%Парам1% %Парам2% ... %ПарамN%
Под первым For команда (`more %1 2^>nul`) more отображает содержимое файла, имя которого "Имя анализируемого файла" передано в первом аргументе процедуры %1. (смотрите more /? For /?)
2^>nul Подавит вывод сообщения об ошибке, если файл не найден. При этом после Do в For исполняться ничего не будет
В "анализируемом файле" искомые параметры содержатся в строке вида
%let Параметр = значение;
Её надо разобрать на подстроки по разделителям "=; "
1. %let
2. Параметр
3. значение
То есть в For имеем ... tokens=1,2,3 delims==; " и они помещаются в переменных %%i %%j %%k
Возможные неприятности:
Если в Параметре или значении есть пробел - работать будет неправильно из-за использования в качестве разделителя пробела.
Если в значении имеются спецсимволы типа % и др. работать будет неправильно из-за особенностей разбора текста в CMD.
(Описанный баг не баг вовсе а фича

Вложенный в первый For второй For вызавает процедуру :Ident куда передаёт последовательно каждое имя параметра %%a из полученного списка %~2 (передали ""Парам1" "Парам2" ..."ПарамN"" , после ~ имеем "Парам1" "Парам2" ..."ПарамN") и куски строк из файла в аргументах "%%i" "%%j" "%%k"
В процедуре :Ident
%2 -первый кусок строки (если это было %let то при передаче % потерялось)
Итак, если первый кусок строки == "let" (let ранее запомнил в переменную %Key%, стараюсь исходные данные вытянуть за код, чтобы можно было легко изменить при надобности - здесь, похоже, это паранойя), сравнение без учета регистра If /I (смотрим If /?)
If /I %2=="%Key%"
и если переданное имя параметра совпадает с именем параметра в строке If /I %1==%3 (%3 кусок строки с именем параметра, если строка начинается на let)
то переменной с именем нужного параметра %~1 присваиваем найденное значение Set "%~1=%~4"
Лирическое отступление 1. Я стремлюсь операторы типа Set Строка=Значение писать в виде Set "Строка=Значение", что позволяет гарантировать отсутствие невидных пробелов после Значение.
Лирическое отступление 2. Извините за длинноты объяснения, не было времени написать кратко