Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Удаление папок, кроме самой новой

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

Пользователь


Сообщения: 59
Благодарности: 0

Профиль | Отправить PM | Цитировать


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

Отправлено: 06:51, 21-04-2020

 

Аватара для YuS_2

Crazy


Contributor


Сообщения: 1235
Благодарности: 518

Профиль | Отправить PM | Цитировать


Цитата NuclearBox:
Как написать батник, который бы запускался внутри директории ROOT и удалял в ней все папки, кроме одной, имеющей самую последнюю (новую) дату создания? »
Поиск по форуму может помочь
- только заменить 30 на 1
Но надо понимать, что дата создания изменяется при копировании, в отличие от даты изменения...

-------
scio me nihil scire. Ѫ


Последний раз редактировалось YuS_2, 21-04-2020 в 20:34.

Это сообщение посчитали полезным следующие участники:

Отправлено: 07:13, 21-04-2020 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Ветеран


Contributor


Сообщения: 2735
Благодарности: 1699

Профиль | Отправить PM | Цитировать


Цитата YuS_2:
Но надо понимать, что дата создания изменяется при копировании, в отличие от даты изменения... »
Для папок, похоже, это не так: и дата создания, и дата изменения меняются.
Цитата NuclearBox:
написать батник, который бы запускался внутри директории ROOT »
Я бы такого сильно опасался - поэтому в батнике укажите реальный полный путь и располагайте его где угодно.
Код: Выделить весь код
@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, Ваша ссылка нерабочая, мне прав не хватает

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

Это сообщение посчитали полезным следующие участники:

Отправлено: 19:02, 21-04-2020 | #3


Пользователь


Сообщения: 59
Благодарности: 0

Профиль | Отправить PM | Цитировать


YuS_2, megaloman, большое спасибо!
Супер! Оба варианта принял на вооружение)

Отправлено: 19:56, 21-04-2020 | #4


Аватара для YuS_2

Crazy


Contributor


Сообщения: 1235
Благодарности: 518

Профиль | Отправить PM | Цитировать


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

Похоже системное копирование так работает... не копируется дата, поэтому приравнивается к текущей.
У меня LastWriteTime не изменяется, но я пользуюсь Total Commander, у него опция есть специальная...

Цитата megaloman:
Ваша ссылка нерабочая, мне прав не хватает »
Хмм, вроде копировал ссылку... что её могло так покорежить - не понимаю... поправил.

-------
scio me nihil scire. Ѫ


Отправлено: 20:35, 21-04-2020 | #5


Ветеран


Сообщения: 1274
Благодарности: 564

Профиль | Отправить PM | Цитировать


Цитата megaloman:
Для папок, похоже, это не так: и дата создания, и дата изменения меняются »
У меня дата изменения точно не меняется:
фото

Отправлено: 00:47, 22-04-2020 | #6


Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


Цитата YuS_2:
Похоже системное копирование так работает... не копируется дата, поэтому приравнивается к текущей. »
Полагаю, проще — каталог просто создаётся.

Отправлено: 03:57, 22-04-2020 | #7


Аватара для YuS_2

Crazy


Contributor


Сообщения: 1235
Благодарности: 518

Профиль | Отправить PM | Цитировать


Цитата alpap:
У меня дата изменения точно не меняется »
Как именно копирование осуществляется? Возможно, каталог перемещается?

Цитата Iska:
Полагаю, проще — каталог просто создаётся. »
Да, возможно... тем более, что есть функция CopyFile, но для каталогов нет такой, только CreateDirecory...

-------
scio me nihil scire. Ѫ


Отправлено: 06:44, 22-04-2020 | #8


Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


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

Отправлено: 09:42, 22-04-2020 | #9


Ветеран


Contributor


Сообщения: 2735
Благодарности: 1699

Профиль | Отправить PM | Цитировать


alpap,
Оправдываюсь, значит виноват: я ничего не выдумал, даты при копировании меняются (по крайней мере Dir пишет так)
Цитата:
===============Исходные папки

===============Создание

Z:\>Dir /A:D /T:C D:\CMD\JS_Host\Дискета_от_книги\
Том в устройстве D имеет метку Arhiv
Серийный номер тома: F497-24CE

Содержимое папки D:\CMD\JS_Host\Дискета_от_книги

05.04.2019 18:11 <DIR> .
05.04.2019 18:11 <DIR> ..
05.04.2019 18:11 <DIR> Chapter01
05.04.2019 18:11 <DIR> Chapter02
05.04.2019 18:11 <DIR> Chapter03
05.04.2019 18:11 <DIR> Chapter04
05.04.2019 18:11 <DIR> Chapter05
05.04.2019 18:11 <DIR> Chapter06
05.04.2019 18:11 <DIR> Chapter07
05.04.2019 18:11 <DIR> Chapter08
05.04.2019 18:11 <DIR> Chapter09
05.04.2019 18:11 <DIR> Chapter10
05.04.2019 18:11 <DIR> Chapter11
0 файлов 0 байт
13 папок 24*591*048*704 байт свободно

===============Изменение

Z:\>Dir /A:D /T:W D:\CMD\JS_Host\Дискета_от_книги\
Том в устройстве D имеет метку Arhiv
Серийный номер тома: F497-24CE

Содержимое папки D:\CMD\JS_Host\Дискета_от_книги

05.04.2019 18:11 <DIR> .
05.04.2019 18:11 <DIR> ..
22.04.2020 09:28 <DIR> Chapter01
05.04.2019 18:11 <DIR> Chapter02
05.04.2019 18:11 <DIR> Chapter03
05.04.2019 18:11 <DIR> Chapter04
05.04.2019 18:11 <DIR> Chapter05
05.04.2019 18:11 <DIR> Chapter06
05.04.2019 18:11 <DIR> Chapter07
05.04.2019 18:11 <DIR> Chapter08
05.04.2019 18:11 <DIR> Chapter09
05.04.2019 18:11 <DIR> Chapter10
05.04.2019 18:11 <DIR> Chapter11
0 файлов 0 байт
13 папок 24*591*048*704 байт свободно

===============Скопированные папки Copy-Past

===============Создание

Z:\>Dir /A:D /T:C Z:\Box_In\
Том в устройстве Z имеет метку Arhiv
Серийный номер тома: F497-24CE

Содержимое папки Z:\Box_In

05.04.2019 17:48 <DIR> .
05.04.2019 17:48 <DIR> ..
22.04.2020 09:36 <DIR> Chapter01
22.04.2020 09:36 <DIR> Chapter02
22.04.2020 09:36 <DIR> Chapter03
22.04.2020 09:36 <DIR> Chapter04
22.04.2020 09:36 <DIR> Chapter05
22.04.2020 09:36 <DIR> Chapter06
22.04.2020 09:36 <DIR> Chapter07
22.04.2020 09:36 <DIR> Chapter08
22.04.2020 09:36 <DIR> Chapter09
22.04.2020 09:36 <DIR> Chapter10
22.04.2020 09:36 <DIR> Chapter11
0 файлов 0 байт
13 папок 24*591*048*704 байт свободно

===============Изменение

Z:\>Dir /A:D /T:W Z:\Box_In\
Том в устройстве Z имеет метку Arhiv
Серийный номер тома: F497-24CE

Содержимое папки Z:\Box_In

22.04.2020 09:36 <DIR> .
22.04.2020 09:36 <DIR> ..
22.04.2020 09:36 <DIR> Chapter01
22.04.2020 09:36 <DIR> Chapter02
22.04.2020 09:36 <DIR> Chapter03
22.04.2020 09:36 <DIR> Chapter04
22.04.2020 09:36 <DIR> Chapter05
22.04.2020 09:36 <DIR> Chapter06
22.04.2020 09:36 <DIR> Chapter07
22.04.2020 09:36 <DIR> Chapter08
22.04.2020 09:36 <DIR> Chapter09
22.04.2020 09:36 <DIR> Chapter10
22.04.2020 09:36 <DIR> Chapter11
0 файлов 0 байт
13 папок 24*591*048*704 байт свободно
В исходный Chapter01 записал файл, поэтому там дата изменения сегодняшняя, а создания - чтарая

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

Это сообщение посчитали полезным следующие участники:

Отправлено: 09:45, 22-04-2020 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Удаление папок, кроме самой новой

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Удаление файлов старше N дней в подпаках, кроме файлов в самой папке Negtm Скриптовые языки администрирования Windows 4 03-02-2017 15:30
CMD/BAT - [решено] Удаление файлов и папок кроме указанных. mrG0bliN Скриптовые языки администрирования Windows 20 07-11-2015 03:59
CMD/BAT - [решено] удалить все пустые строки, кроме самой последней Alexander_88 Скриптовые языки администрирования Windows 8 05-01-2015 12:43
CMD/BAT - Удаление всех папок кроме 30-ти последних __sa__nya Скриптовые языки администрирования Windows 1 12-04-2013 21:21
MSFT SQL Server - [решено] Удаление баз кроме ... Butunin Klim Программирование и базы данных 5 23-04-2009 10:01




 
Переход