Вы должны войти, чтобы создавать сообщения и темы.

Как удалить файл, со списком исключения

Всем доброго вечера, есть команда:

for /f "delims=" %%i IN ('dir /b "C:\Windows\System32" ^| findstr /ic:"edge"') DO del /q "%%i"

Она удаляет все файл с словом edge, но мне нужно сделать чтоб она не удаляла вот эти файлы:
"C:\Windows\System32\edgehtml.dll"
"C:\Windows\System32\edgeIso.dll"
"C:\Windows\System32\EdgeManager.dll"
Помогите пожалуйста, а то каждому файлу путь прописывать вручную долго

Добрый🖐.
В гугле гора примеров, вот более подходящий тебе.
Или Vlado подожди, он шарит, готовое может накидает.

«Любой дурак может знать. Дело в том, чтобы понять.» — Альберт Эйнштейн

Выложу готовый, с той ссылки.
Сделаешь txt док с именами исключения и все.

@echo off
 
:: Директория
set "Otkuda=C:\Windows\System32"
 
:: Файл с именами файлов исключений
set "NoDelete=путь к текстовику с исключениями\NoDelete.txt"
 
 
for %%a in ("%Otkuda%\*edge*") do (findstr /ic:"%%~nxa" "%NoDelete%">nul 2>&1 ||  del /f /q "%%~a")
 
exit /b

cmd не мой, я только Скопировано*edge* вставил.
Рекурсивный, если подпапки нужны - Скопированоfor /f "delims=" %%i in ('dir /a-d /b /s "%Otkuda%\*edge*"') do (findstr /ic:"%%~nxi" "%NoDelete%">nul 2>&1 || del /f /q "%%~i")

Лайкнул Удаленный пользователь
Удаленный пользователь
«Любой дурак может знать. Дело в том, чтобы понять.» — Альберт Эйнштейн

Доброго, нужны права TI, удаляет только в указанном каталоге, не влезая в подпапки

@echo off
pushd C:\Windows\System32
for /f "delims=" %%a in ('dir /b *edge*') do if not "%%~na"=="edgehtml" if not "%%~na"=="edgeIso" if not "%%~na"=="EdgeManager" DEL /Q "%%a"
echo.
for /f "delims=" %%a in ('dir /b *edge*') do echo %%a
popd&pause&exit

Помогите пожалуйста, а то каждому файлу путь прописывать вручную долго

Там файлов раз два и обчелся, лучше, конечно конкретно указывать:

@echo off&pushd C:\Windows\System32
set "file1=MicrosoftEdgeBCHost.exe"
set "file2=MicrosoftEdgeDevTools.exe"
set "file3=MicrosoftEdgeSH.exe"
set "file4=MicrosoftEdgeCP.exe"
set "file5=edgeangle.dll"
set "file6=EdgeContent.dll"
for %%i in (%file1%, %file2%, %file3%, %file4%, %file5%, %file6%) do del %%i >nul
popd&pause&exit
@echo off&pushd C:\Windows\System32 
del /q MicrosoftEdgeBCHost.exe 
del /q MicrosoftEdgeDevTools.exe 
del /q MicrosoftEdgeSH.exe 
del /q MicrosoftEdgeCP.exe
del /q edgeangle.dll
del /q EdgeContent.dll
popd&pause&exit