Например:

Я в каталоге:

F:\Data

Внутри этого каталога у меня есть четыре каталога:

F:\Data> реж
22179 22915 23459 23460

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

rmdir /s *\*

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

3 ответа3

4

Попробуйте это, я думаю, это поможет ....

RD /s /q (а затем путь к папке, которую нужно удалить)

он удалит все содержимое самой папки

1

DEL /S /Q *.* Работает на вас?

1
(for /d %A in (*) do @for /d %B in ("%A\*") do @rd /s /q "%~B")&del /s /q *.* >nul

Это один лайнер - но я бы не назвал это простым. Он проходит через первые два уровня дерева, но все, что будет глубже, будет удалено без дальнейших циклов. Если в пакетном файле% A и% B становятся %% A и %% B

Я не был уверен, хотите ли вы, чтобы все файлы были удалены из вашего корня (F:\data в вашем случае). Выше будут удалены файлы, найденные в вашем корне.

Если вы хотите сохранить файлы в корне, то я думаю, что это должно работать (я не проверял этот)

for /d %A in (*) do @(@for /d %B in ("%A\*") do @rd /s /q "%~B")&@del /q "%A\*.* >nul

Символы @ могут быть удалены из обоих наборов кода - они только для того, чтобы предотвратить отображение каждого уровня команды.

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