Я пытаюсь создать однострочную команду, которая получит все каталоги, соответствующие шаблону, и удалит определенное их количество.
Допустим, у меня есть такой каталог:
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 )