Удалить все файлы в папке, кроме тех, чьи имена содержат - PullRequest
0 голосов
/ 19 декабря 2018

Я пытаюсь удалить все файлы в папке, КРОМЕ тех, чье имя файла содержит строку ntdll.

Вот что я пробовал:

for %i in (dlls/*) do if not %%i == %%i:ntdll del %%i
for %i in (*) do if not %i == %i:ntdll del %i

Я пробовал с findstr но у меня был небольшой успех.

1 Ответ

0 голосов
/ 19 декабря 2018

Ваш синтаксис неправильный.Вот возможное решение (вам понадобится отложенное расширение):

for %A IN (*) do @set file=%A && if !file!==!file:ntdll=! (@del /F /A !file!)

Включите отложенное расширение в cmd с помощью cmd /v:on.Вы вынуждены использовать его, находясь внутри блока кода.

Эта простая команда ищет все файлы в текущем рабочем каталоге, присваивает каждому из них переменную и проверяет, есть ли внутри них строка ntdll.,Если нет, они удаляют их.

Для лучшего понимания команд, упомянутых выше, откройте новый cmd и введите:

  • for /?
  • set /?
  • del /?

Некоторые интересные ссылки для дальнейшего чтения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...