Автор |
Сообщение |
ATX555 Гуру |
|
Есть папка (пусть Tmp) с известным именем и путём к ней в Windows.
В ней множество непустых папок с разными именами вида ***.tmp, которые надо все безусловно удалить (т.е. очистить всё содержимое папки Tmp).
Как удалить саму папку с известным именем - понятно, а вот как её содержимое?
Поиск выдаёт одни вопросы без ответа (т.е. все ответы именно про такой вариант - мимо), что как-то странно ...
Может кто мастер в юзании DEL или RD (или какой другой секретной команды)? |
|
|
|
|
Richard Ferlow Гуру Предупреждений : 2
|
|
Ну зайти в папку и там del *.* или *.tmp
upd, хотя так понял удаление папок с содержимым нужно.
https://yadi.sk/i/nJ3k3M_wbunnS
RD /S C:\Temp - правда ошибку в конце выдает, видимо пытается Temp тоже удалить |
|
|
|
|
Evgeny79 Гуру |
|
rmdir /S /Q директория - удалить не пустой каталог
ТС надо папку оставить, и подчистить ее содержимое только. Эта команда удаляет один каталог, маску "*.*" не понимает т.е. надо получать список папок и их уже удалять поштучно.
Можно предложить вариант удалить весь каталог tmp и потом его создать. будет пустой.
rmdir /S /Q "c:\tmp"
md "c:\tmp"
// при пересоздании папки могут потеряться права
// cd "c:\tmp" & rd /s /q "c:\tmp" - в этом случае сама папка не удалится, она будет заблокирована как текущая |
|
|
|
|
ATX555 Гуру |
|
Evgeny79 писал(а): |
Можно предложить вариант удалить весь каталог tmp и потом его создать. будет пустой.
rmdir /S /Q "c:\tmp"
md "c:\tmp" |
Тоже думал так,
но папки внутри Tmp создаёт система (дампы-логи ошибок), пользуется содержимым юзер без прав администратора, а удаляет bat-ник из-под учётной записи администратора.
Поэтому мне показалось (а чтоб проверить - надо работающую систему, да ещё и заставить её как-то сбоить для появления содержимого),
что // при пересоздании папки могут потеряться права
Цитата: |
// cd "c:\tmp" & rd /s /q "c:\tmp" - в этом случае сама папка не удалится, она будет заблокирована как текущая |
- а вот это сейчас проверю! |
|
|
|
|
ATX555 Гуру |
|
Да, уж...
cd "c:\tmp" & rd /s /q "c:\tmp" - удаляет папку целиком
cd "c:\tmp\" & rd /s /q "c:\tmp\*" - ничего не удаляет, выдаёт "Синтаксическая ошибка".
// странно, ну можно del /s /q "c:\tmp\*" но это оставит пустые подпапки |
|
|
|
|
Evgeny79 Гуру |
|
Батник надо запускать на том же диске. либо делать переход на диск
Код: |
d:
cd "d:\tmp\"
rd /s /q "d:\tmp\" |
// или использовать cd /d "к:\куда" |
|
|
|
|
ATX555 Гуру |
|
Evgeny79 писал(а): |
Батник надо запускать на том же диске. |
Ну, да - запущенный из папки Tmp батник жертвует собой (стирает всё содержимое папки и себя тоже), но оставляет при этом папку
Evgeny79 писал(а): |
либо делать переход на диск |
Так пример выше и делает это - не помогает CD, убивется папка.
Можно, конечно, разместить батник на каждом рабочем компе, но если что-то поменяется - придётся везде менять, а мы ведь прилагаем усилия, чтоб облегчить себе жизнь.
bat-ник на USB-диске, цепляемом к компам для резервирования данных,
запускается для удаления хлама до или после резервного копирования
(есть крайние случаи с сотнями тысяч записей, когда не дождаться окончания их копирования ) |
|
|
|
|
ATX555 Гуру |
|
Цитата: |
// или использовать cd /d "к:\куда" |
Во!
Вот это и надо было - оно реально отработало, как надо!!! |
|
|
|
|
|