O que eu precisaria adicionar para ignorar também nomes de arquivos contendo AppData com extensões .exe? Estou usando isso em um SetupComplete.cmd para configuração autônoma do Windows e tenho AppDataLocal.exe e AppDataRoaming.exe que são arquivos sfx e não quero que sejam excluídos. Espero que possa ser um curinga, algo como AppData*.exe.
forfiles /p "%WINDIR%\Setup\Files" /s /m *.* /c "cmd /c for %G in (@path) do @if /I [%~xG] neq [.reg] @echo del /F /Q %G" /d
Responder1
Não vejo razão para usar FORFILES - é bastante lento.
Eu faria algo como o seguinte:
@echo off
for /f "delims=" %%F in (
'dir /b /s /a-d "%WINDIR%\Setup\Files"^|findstr /rive "\.reg [\\]AppData[^\\]*\.exe"'
) do del "%%F"
Eu canalizo um DIR /B recursivo por meio de FINDSTR, usando um par de expressões regulares para excluir nomes de arquivos que terminam com ".reg" ou "\AppData*.exe", ignorando maiúsculas e minúsculas. O resultado é iterado via FOR /F para que eu possa excluir cada arquivo.