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

Как создать однострочную команду для удаления определенного количества папок

Я пытаюсь создать однострочную команду, которая получит все каталоги, соответствующие шаблону, и удалит определенное их количество.

Допустим, у меня есть такой каталог:

C:/
   tmp/
       www/
          01/
          02/
          03/
          04/
          05/

И я хочу сохранить только 2 последние папки 05 и 04.

У меня есть цикл for, который выводит все папки, часть, с которой у меня проблемы, считается за определенное количество:

> for /f "tokens=*" %G in ('dir /b /a:d "C:\tmp\www\*"') do echo Found %G
Found 20161201004853
Found 20161201005125
Found 20161201005246

Я попытался добавить счетчик, но я не уверен, как разделить команды, так как все они находятся в одной строке. Несмотря на большое количество запросов в Google, я надеюсь, что кто-то здесь знает.

Как всегда, если есть лучший способ сделать это, я тоже открыт для этого.

Это приведет к удалению всех папок, кроме последних 2 (при условии, что они упорядочены в алфавитном порядке).

Просто поместите этот идентификатор строки в файл .cmd / .bat и выполните его внутри родительской папки.

. Количество файлов можно контролировать с помощью параметра (% 1), переданного команде. Удаление последней или первой папки можно контролировать в 'dir / b /o.n'

setlocal EnableDelayedExpansion & set x=0 & for /f %%f in ( 'dir /b /o-n' ) do ( set /a x+=1 &  if !x! lss 3 rd /s/q %%f )