Что мне нужно добавить, чтобы также игнорировать имена файлов, содержащие AppData с расширениями .exe? Я использую это в SetupComplete.cmd для автоматической установки Windows, и у меня есть AppDataLocal.exe и AppDataRoaming.exe, которые являются архивами sfx и не хотят, чтобы они были удалены. Я надеюсь, что это может быть подстановочный знак, что-то вроде 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

1 ответ1

1

Я не вижу смысла использовать ФАЙЛЫ - это довольно медленно.

Я хотел бы сделать что-то вроде следующего:

@echo off
for /f "delims=" %%F in (
  'dir /b /s /a-d "%WINDIR%\Setup\Files"^|findstr /rive "\.reg [\\]AppData[^\\]*\.exe"'
) do del "%%F"

Я передаю рекурсивный DIR /B через FINDSTR, используя пару регулярных выражений, чтобы исключить имена файлов, заканчивающиеся на «.reg» или «\AppData * .exe», игнорируя регистр. Результат повторяется с помощью FOR /F, поэтому я могу удалить каждый файл.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .