Ночного тупняка вопрос

Мои дорогие воображаемые программисты! Скажите мне, плз, существует ли команда cmd, которая убивала бы произвольные директории в папке, не убивая саму папку? Я чет затупил и не могу сообразить.

del C:\Directory\*.* – убьет файлы в папке Directory, но оставит поддиректории.

rd C:\Directory\ – убьет саму папку совсем содержимым.

А есть ли способ очищать папку от всего мусора – и файлов и поддиректорий, — не удаляя саму папку? А то сейчас я я делаю это вот так:

rd C:\Directory\ /s /q 
md C:\Directory\

Оно, конешно, и так работает, но метод какой-то уж очень per anus, не? Должно же это как-то в одну строчку решаться?

Простите, если кому смешно и элементарно, “я ж не настоящий сварщик, я маску на стройке нашел…” (с)

7 комментариев

  1. slow

    Ну, потратил десять минут на прошерстить гугол и пять минут на потестить, вроде работает
    Создаем батник со след текстом

    @echo off
    cd «%1»
    del *.* /Q
    for /d %%i in (*) do rmdir /s /q «%%i»

    обзываем как нибудь и параметром ему передаем полный путь до папки которую надо почитстить

    • Andrey

      Батник не сработает, если буква диска удаляемой папки отличается от папки с батником

      Правильный способ на примере %TEMP%

      del /Q «%TEMP%\*» && for /d %%i in («%TEMP%\*») do rd /s /q «%%i»

  2. hidden

    Если это надо автоматически делать, то можно совместить приятное с полезным и заюзать вместо стандартного планировщика nnCron. Он умеет и директории чистить и много всякого прочего делать.

  3. goga128

    Уж коли у вас стоит Windows7 то давно пора переходить на PowerShell. В нем ваша задача действительно решается в одну строчку: Remove-Item c:\Directory\* -recurse

    Кстати PoSH имеет обратную совместимость с cmd и в нем работают большая часть команд из старых добрых батников, те доработка скриптов нужна минимальная.

Оставить комментарий

Новая книга