1. Исполняется команда:
Код:
![Выделить весь код](images/misc/selectcode.png)
reg.exe query "%sPath%"
2. Вывод команды «reg.exe» передаётся по конвейеру («|») на вход команды:
Код:
![Выделить весь код](images/misc/selectcode.png)
find.exe "{"
которая фильтрует полученный текст, оставляя только строки, в которых содержится указанный символ («{»).
3. Вывод команды «find.exe» передаётся на построчный разбор команде «for /f»:
* чтобы указать, что мы разбираем именно вывод команды, а не содержимое файла, внутри скобок мы используем апострофы («'…'»), внутри которых мы указываем саму команду (в данном случае — несколько команд, объединённых конвейером);
* чтобы символ конвейера был отнесён интерпретатором не к самой команде «for /f», а к указанным для исполнения командам, мы его
экранируем символом «^»;
* дабы строки воспринимались цельной лексемой — мы указываем атрибутом «delims» отсутствие разделителей лексем
[только сейчас увидел и поправил в предыдущем коде свою очередную тупую описку — двойной знак равенства при атрибуте «delims»].
4. Результаты разбора будут доступны внутри цикла разбора «for /f» через указанную переменную «%%i».
5. После разбора первой же строки мы безусловно переходим на указанную метку «:Teminate», тем самым обрывая разбор.