суббота, 2 июля 2011 г.

Об особенности работы интерпретатора cmd

В процессе обработки пакетного файла интерпретатор cmd читает строку с командой необходимую выполнить, выполняет ее и потом читает следующую строку. При это постоянно происходит открытие и закрытие исполняемого командного файла.
Данная особенность позволяет делать самомодифицирующиеся батники. Небольшой пример.
@echo off
set a=
:m1
if "%a%"=="exit " goto :eof
echo echo executing adding code >>%0
echo set a=exit >>%0
echo goto :m1 >>%0
rem здесь будут добавлены новые команды.


Комментариев нет: