Назад | Перейти на главную страницу

удалить все папки с tmp в имени с помощью командного файла

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

У меня есть только базовое представление о пакетных файлах, но я думаю, что мне нужно что-то вроде этого:

rmdir "D:\*.tmp"

Обновление Windows, похоже, сбрасывает все свои папки .tmp на наш диск D, так как на нем больше всего свободного места. Хорошо, но потом их не удаляет.

Я хочу написать командный файл, который пройдет и удалит любую папку с расширением .tmp в конце.

Бросьте этот лайнер в bat-файл:

FOR /D /R c:\FOLDERLOCATION %%X IN (*.tmp) DO RMDIR /S /Q "%%X"

  • / D - для каталога
  • / R - Рекурсивный

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

@echo off
set dir="c:\FOLDERLOCATION\"
FOR /D /R %dir% %%X IN (*.tmp) DO RMDIR /S /Q "%%X"
pause
exit

Если вы добавите /S до конца этой строки, я считаю, что он удалит все указанные папки и подпапки, соответствующие вашему поиску по шаблону. Если вы можете подтвердить, что он работает, вы можете бросить его в Блокнот и сохранить как .bat файл. К сожалению, я придерживаюсь старой школы и не знаю, как это сделать в стиле Powershell. : o (

Я улучшил ответ @RomeNYRR - спасибо @RomeNYRR!

Теперь команда отображает удаленные папки и скрывает сообщения об ошибках «элемент не найден»:

for /d /r . %X in (*.tmp) do @rmdir /s /q "%X" 2> nul && @echo Deleted %X

Отлично, если вам нужно почистить после компилятора ...;)

for /d /r . %X in (bin obj) do @rmdir /s /q "%X" 2> nul && @echo Deleted %X