@nikweter
Системный администратор

Как написать скрипт?

Имеется следующая структура каталогов:
Каталог
  Имя1
		Один
		Два
	Имя2
	Имя3
Каталог2
	Имя1
		Один
		Два
	Имя2
	Имя3

В каталогах Один и Два нужно удалить файлы старше месяца. Собственно, само удаление проблем не вызывает, а вот как пройти рекурсивно по все структуре и удалить в нужном месте, а в Имя1, Имя2 и тд - все оставить без изменений - не понимаю...
  • Вопрос задан
  • 369 просмотров
Пригласить эксперта
Ответы на вопрос 2
@res2001
Developer, ex-admin
Тут основная проблема не "в пройти рекурсивно", а как вычислить файлы за прошлый месяц.
На похожий вопрос отвечал недавно тут.
Для вычисления файлов на удаление воспользуйтесь этим советом, в вашем случае N будет 30 или 31. Но если нужно именно за прошлый месяц, а не N дней назад, то уже будет сложнее.

На счет пройти рекурсивно - очень просто:
for /f "tokens=* delims=" %%a in ('dir /s /b /ad "Один" "Два" ') do (
echo.%%~a
dir %%~a\*
)
Ответ написан
Комментировать
@yellowmew
Cloud infrastructure, monitoring engineer. SRE
"каталог","каталог2" | foreach {Get-ChildItem "<FullPath2WorkFolder>\$_\имя1" -Recurse | where {$_.creationtime -le (get-date).AddMonth(-1)}} | remove-item

Внимание!
Этот однострочник решает задачу только для точно такой же, как в описании автора структуры.
Используя его без переработки вы рискуете удалить совсем не то что нужно :D
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы