3

Я видел удаление всех файлов, которые не соответствуют определенному шаблону - командная строка Windows

Тем не менее, я не видел ничего относительно того, как удалить все, что не содержит определенной строки в имени файла.

Как я могу удалить все zip-файлы (другие файлы не должны обрабатываться) в папке и ее подпапках, в имени которых не указано "MS" (с учетом регистра).

Эти буквы могут быть рядом с другими буквами (например, имена файлов "ABCMSABC" должны быть сохранены, потому что в них есть "MS", но все остальные файлы должны быть удалены). Несколько файлов будут иметь "MS" в них.

1 ответ1

5

Как я могу удалить zip-файлы в папке / подпапках, которые не имеют "MS" в названии?

Используйте следующий пакетный файл:

@echo off
setlocal disableDelayedExpansion
for /f "usebackq tokens=*" %%i in (`dir /a:-d /b /s *.zip ^| findstr /v "[\\][^\\]*MS[^\\]*$"` ) do (
  echo del /s /q %%i
)
endlocal

Заметки:

  • Удалите echo когда вы довольны тем, что будет делать командный файл.
  • Ответ обновлен в соответствии с комментарием dbenham, чтобы разрешить для каталогов, содержащих строку "MS"
  • Ответ обновлен для обработки имен файлов, содержащих пробелы.

Дальнейшее чтение

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