CMD/BAT - [решено] Удаление папок, кроме самой новой

Аватара пользователя
NuclearBox

CMD/BAT - [решено] Удаление папок, кроме самой новой

Сообщение NuclearBox »

Здравствуйте.

Есть директория ROOT, и в ней папки с файлами. Имена папок самые разные.

Как написать батник, который бы запускался внутри директории ROOT и удалял в ней все папки, кроме одной, имеющей самую последнюю (новую) дату создания?
Аватара пользователя
YuS_2

Re: CMD/BAT - [решено] Удаление папок, кроме самой новой

Сообщение YuS_2 »

Цитата NuclearBox:



Как написать батник, который бы запускался внутри директории ROOT и удалял в ней все папки, кроме одной, имеющей самую последнюю (новую) дату создания?
CMD/BAT - [решено] Удаление папок, кроме самой новой




Поиск по форуму
CMD/BAT - Удаление всех папок кроме 30-ти последних


- только заменить 30 на 1

Но надо понимать, что дата создания изменяется при копировании, в отличие от даты изменения...
Аватара пользователя
alpap

Re: CMD/BAT - [решено] Удаление папок, кроме самой новой

Сообщение alpap »

Цитата YuS_2:



Но надо понимать, что дата создания изменяется при копировании, в отличие от даты изменения...
CMD/BAT - [решено] Удаление папок, кроме самой новой




Для папок, похоже, это не так: и дата создания, и дата изменения меняются.
Цитата NuclearBox:



написать батник, который бы запускался внутри директории ROOT
CMD/BAT - [решено] Удаление папок, кроме самой новой







Я бы такого сильно опасался - поэтому в батнике укажите реальный полный путь и располагайте его где угодно.

[spoiler]Код:
[/spoiler]

Код: Выделить всё

@Echo Off
	Set "Folder=D:\Tra La La\Root"
	If Not "%Folder:~-1%"=="\" Set "Folder=%Folder%\"
	FOR /F "usebackq skip=1 delims=" %%i IN (`2^>nul Dir "%Folder%*.*" /B /A:D /T:C /O:-D`) DO Rd /S /Q "%Folder%%%i"
Exit /B







YuS_2, Ваша ссылка нерабочая, мне прав не хватает
Аватара пользователя
megaloman

Re: CMD/BAT - [решено] Удаление папок, кроме самой новой

Сообщение megaloman »

YuS_2, megaloman, большое спасибо!

Супер! Оба варианта принял на вооружение)
Аватара пользователя
NuclearBox

Re: CMD/BAT - [решено] Удаление папок, кроме самой новой

Сообщение NuclearBox »

Цитата megaloman:



Для папок, похоже, это не так: и дата создания, и дата изменения меняются.
CMD/BAT - [решено] Удаление папок, кроме самой новой




Изображение

Похоже системное копирование так работает... не копируется дата, поэтому приравнивается к текущей.

У меня LastWriteTime не изменяется, но я пользуюсь Total Commander, у него опция есть специальная...




Цитата megaloman:



Ваша ссылка нерабочая, мне прав не хватает
CMD/BAT - [решено] Удаление папок, кроме самой новой




Хмм, вроде копировал ссылку... что её могло так покорежить - не понимаю... поправил.
Аватара пользователя
NuclearBox

Re: CMD/BAT - [решено] Удаление папок, кроме самой новой

Сообщение NuclearBox »

Цитата megaloman:



Для папок, похоже, это не так: и дата создания, и дата изменения меняются
CMD/BAT - [решено] Удаление папок, кроме самой новой




У меня дата изменения точно не меняется:

фото
Аватара пользователя
alpap

Re: CMD/BAT - [решено] Удаление папок, кроме самой новой

Сообщение alpap »

Цитата YuS_2:



Похоже системное копирование так работает... не копируется дата, поэтому приравнивается к текущей.
CMD/BAT - [решено] Удаление папок, кроме самой новой




Полагаю, проще — каталог просто создаётся.
Аватара пользователя
Iska

Re: CMD/BAT - [решено] Удаление папок, кроме самой новой

Сообщение Iska »

Цитата alpap:



У меня дата изменения точно не меняется
CMD/BAT - [решено] Удаление папок, кроме самой новой




Как именно копирование осуществляется? Возможно, каталог перемещается?




Цитата Iska:



Полагаю, проще — каталог просто создаётся.
CMD/BAT - [решено] Удаление папок, кроме самой новой




Да, возможно... тем более, что есть функция CopyFile, но для каталогов нет такой, только CreateDirecory...
Аватара пользователя
YuS_2

Re: CMD/BAT - [решено] Удаление папок, кроме самой новой

Сообщение YuS_2 »

YuS_2, я про то ж. И, если для MoveFileEx() явным образом сказано, что переносятся и файлы, и каталоги, то для CopyFileEx() — говорится только про файлы.
Аватара пользователя
Iska

Re: CMD/BAT - [решено] Удаление папок, кроме самой новой

Сообщение Iska »

YuS_2, я про то ж. И, если для MoveFileEx() явным образом сказано, что переносятся и файлы, и каталоги, то для CopyFileEx() — говорится только про файлы.
Ответить

Вернуться в «Скриптовые языки администрирования Windows»