powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Windows [игнор отключен] [закрыт для гостей] / Как в cmd получить список файлов старше 1 суток (forfiles не подходит)
39 сообщений из 39, показаны все 2 страниц
Как в cmd получить список файлов старше 1 суток (forfiles не подходит)
    #39930481
пятый2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Коллеги, добрый день.


Есть задача в командной строке получить список файлов старше 1 суток в виде:

C:\folder\file1.xml
C:\folder\file2.xml
C:\folder\file3.xml
C:\folder\1\subfile1.xml
C:\folder\2\subfile2.xml
...


из определенного каталога и всех его подкаталогов.

Проблема в том, что количество файлов там исчисляется миллионами.

И forfiles работает часы.

Хотя просто dir отрабатывал быстро.

Однако в dir не нашел как оставить файлы старше 1 суток.




Подскажите пожалуйста как можно быстро получить список файлов страше 1 суток?
...
Рейтинг: 0 / 0
Как в cmd получить список файлов старше 1 суток (forfiles не подходит)
    #39930488
пятый2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Или виндоус в принципе не может это сделать?

(Linux делает легко)
...
Рейтинг: 0 / 0
Как в cmd получить список файлов старше 1 суток (forfiles не подходит)
    #39930493
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пятый2,

Поставить cygwin или coreutils и свести задачу к "как посмотреть список файлов старше суток в linux"
http://gnuwin32.sourceforge.net/
http://cygwin.com/
...
Рейтинг: 0 / 0
Как в cmd получить список файлов старше 1 суток (forfiles не подходит)
    #39930499
пятый2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
crutchmaster
пятый2,

Поставить cygwin или coreutils и свести задачу к "как посмотреть список файлов старше суток в linux"
http://gnuwin32.sourceforge.net/
http://cygwin.com/


Не, надо сделать это без установки дополнительного софта.
...
Рейтинг: 0 / 0
Как в cmd получить список файлов старше 1 суток (forfiles не подходит)
    #39930503
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
25.02.2020 12:02, пятый2 пишет:
>
> Не, надо сделать это без установки дополнительного софта.
>

Скрипт удаления выборочных файлов
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как в cmd получить список файлов старше 1 суток (forfiles не подходит)
    #39930507
пятый2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мимопроходящий

25.02.2020 12:02, пятый2 пишет:
>
> Не, надо сделать это без установки дополнительного софта.
>

Скрипт удаления выборочных файлов


Спасибо.

Однако, вы меня не правильно поняли...

удалять ничего не надо.

Требуется просто вывести список.
...
Рейтинг: 0 / 0
Как в cmd получить список файлов старше 1 суток (forfiles не подходит)
    #39930511
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
25.02.2020 12:11, пятый2 пишет:
> удалять ничего не надо.

ну дык не удаляй.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как в cmd получить список файлов старше 1 суток (forfiles не подходит)
    #39930512
пятый2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мимопроходящий

25.02.2020 12:11, пятый2 пишет:
> удалять ничего не надо.

ну дык не удаляй.


По ссылке просто сортируют список файлов по дате, а потом удаляют последние 5 шт.

Это вообще не то.

Совсем не то.

У меня может быть и 5 файлов и 5 000 000 файлов, которые под условие попадают.
...
Рейтинг: 0 / 0
Как в cmd получить список файлов старше 1 суток (forfiles не подходит)
    #39930517
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
25.02.2020 12:17, пятый2 пишет:
>
> Это вообще не то.
> Совсем не то.
>

тебе нужно готовое решение?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как в cmd получить список файлов старше 1 суток (forfiles не подходит)
    #39930529
пятый2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мимопроходящий

25.02.2020 12:17, пятый2 пишет:
>
> Это вообще не то.
> Совсем не то.
>

тебе нужно готовое решение?


Не прям готовое, но хотя бы примерно.

Вот, смотрите.

Пока думаю надо делать как-то на повар-шале.


Пока вот такое получается:


powershell -command "Get-ChildItem -Path C:\test -Recurse -File | Where-Object -FilterScript {($_.LastWriteTime -gt '2005-10-01')}"


Вот такой вывод:


Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
    Каталог: C:\test


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----       25.02.2020     12:32              0 1.txt
-a----       25.02.2020     12:33              0 2.txt
-a----       25.02.2020     12:33              0 3.txt


    Каталог: C:\test\1


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----       25.02.2020     12:32              0 1_1.txt
-a----       25.02.2020     12:33              0 1_2.txt


    Каталог: C:\test\2


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----       25.02.2020     12:32              0 2_1.txt





При этом есть три проблемы:

1) как задать дату относительно текущей?
2) как сделать форматирование вывода чтобы файлы были с дирректорией
3) Как сделать форматирование вывода чтобы кроме имени файла с путем ничего больше не было? (в т.ч. и лишних строк Mode LastWriteTime Length Name, ---- ------------- ------ ---- и т.п.)
...
Рейтинг: 0 / 0
Как в cmd получить список файлов старше 1 суток (forfiles не подходит)
    #39930531
пятый2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
т.е. надо чтобы вывод был вот такой:



Код: powershell
1.
2.
3.
4.
5.
6.
C:\test\1.txt\1.txt
C:\test\2.txt\2.txt
C:\test\3.txt\3.txt
C:\test\1\1_1.txt\1_1.txt
C:\test\1\1_2.txt\1_2.txt
C:\test\2\2_1.txt\2_1.txt
...
Рейтинг: 0 / 0
Как в cmd получить список файлов старше 1 суток (forfiles не подходит)
    #39930547
пятый2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мимопроходящий,


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


По ссылке, которую вы привели, вы, кстати, так ничего и не ответили.
...
Рейтинг: 0 / 0
Как в cmd получить список файлов старше 1 суток (forfiles не подходит)
    #39930553
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
25.02.2020 12:55, пятый2 пишет:
> если вам не под силу написать...

ты гля!
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как в cmd получить список файлов старше 1 суток (forfiles не подходит)
    #39930567
Фотография volodin661
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пятый2,

Код: powershell
1.
2.
3.
function вчерась { $y = (Get-Date).AddDays(-1); Get-Date -Day $y.Day -Month $y.Month -Year $y.Year -Hour 00 -Minute 00 -Second 00 -Millisecond 00 }

gci your_dir/* -file -rec |?  LastWriteTime -lt (вчерась) | select FullName


выберет файлы изменённые вчера и ранее
...
Рейтинг: 0 / 0
Как в cmd получить список файлов старше 1 суток (forfiles не подходит)
    #39930568
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пятый2
список файлов старше 1 суток
Это с учётом времени, или "не сегодня"?

пятый2
если вам не под силу написать как требуется или вы хотите выклянчить деньги за помощь, то извиняйте.
Вы практически лишили себя возможности получить помощь.
...
Рейтинг: 0 / 0
Как в cmd получить список файлов старше 1 суток (forfiles не подходит)
    #39930575
пятый2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мимопроходящий

25.02.2020 12:55, пятый2 пишет:
> если вам не под силу написать...

ты гля!


Вы же ничего полезного не написали ни в этой теме ни в той что привели ссылочкой.
...
Рейтинг: 0 / 0
Как в cmd получить список файлов старше 1 суток (forfiles не подходит)
    #39930577
пятый2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
volodin661
пятый2,

Код: powershell
1.
2.
3.
function вчерась { $y = (Get-Date).AddDays(-1); Get-Date -Day $y.Day -Month $y.Month -Year $y.Year -Hour 00 -Minute 00 -Second 00 -Millisecond 00 }

gci your_dir/* -file -rec |?  LastWriteTime -lt (вчерась) | select FullName


выберет файлы изменённые вчера и ранее


О, благодарю!
...
Рейтинг: 0 / 0
Как в cmd получить список файлов старше 1 суток (forfiles не подходит)
    #39930579
пятый2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina
пятый2
список файлов старше 1 суток
Это с учётом времени, или "не сегодня"?



С датой проблема решена.

На данный момент осталась только две проблемы

1) вывести имена файлов с их путями, вместо просто имен файлов.
2) не выводить названия столбца типа

Код: powershell
1.
2.
Name
----




Если кто знает - буду очень благодарен.
...
Рейтинг: 0 / 0
Как в cmd получить список файлов старше 1 суток (forfiles не подходит)
    #39930586
Фотография volodin661
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: powershell
1.
( gci your_dir/* -file -rec |?  LastWriteTime -lt (вчерась) ).FullName
...
Рейтинг: 0 / 0
Как в cmd получить список файлов старше 1 суток (forfiles не подходит)
    #39930611
пятый2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
volodin661,

Спасибо, получилось!


Единственное что осталось - это заголовок убрать Fullname и ------- но это уже не так критично.
...
Рейтинг: 0 / 0
Как в cmd получить список файлов старше 1 суток (forfiles не подходит)
    #39930618
Фотография volodin661
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пятый2,

какие-такие заголовки ?
при обращении к свойству об'екта через точку ( Object .FullName ) никакие заголовки не выводятся.
...
Рейтинг: 0 / 0
Как в cmd получить список файлов старше 1 суток (forfiles не подходит)
    #39930645
пятый2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
volodin661
пятый2,

какие-такие заголовки ?
при обращении к свойству об'екта через точку ( Object .FullName ) никакие заголовки не выводятся.



Да, так точно лишнего не выводит!
...
Рейтинг: 0 / 0
Как в cmd получить список файлов старше 1 суток (forfiles не подходит)
    #39930646
пятый2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
volodin661,

Но появилась еще одна проблема.

На другом сервере почему-то не принимает параметр -file

:((


Подскажите пожалуйста, как можно оставить только файлы (без дирректорий) без этого параметра?
...
Рейтинг: 0 / 0
Как в cmd получить список файлов старше 1 суток (forfiles не подходит)
    #39930649
пятый2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
там где -file не переваривает версия PSVersion 2.0


Надо как-то в ней отфильтровать дирректории из вывода..
...
Рейтинг: 0 / 0
Как в cmd получить список файлов старше 1 суток (forfiles не подходит)
    #39930699
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
3.
@echo off
Setlocal EnableDelayedExpansion
for /R z:\temp %%I in (*) do (SET _tempVar=%%~tI && IF "!_tempVar:~0,10!"=="02/25/2020" @echo %%I)


Где Z:\Temp - это каталог поиска
02/25/2020 - дата поиска.

Как то так. Дату надо задавать в том виде, в котором она задана региональными настройками текущей локали
у меня находит все файлы за указанный день
ну и подсчитать разницу между датами в 1 день, я хз как сделать в голом виндовсе, чисто гипотетически, можно объединить год, месяц, день, час и минуты в 1 значение (как оно обычно хранится) и потом вычитая получить количество секунд и сравнивать их. Но мне лень
...
Рейтинг: 0 / 0
Как в cmd получить список файлов старше 1 суток (forfiles не подходит)
    #39930719
Фотография volodin661
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пятый2
volodin661,

Но появилась еще одна проблема.

На другом сервере почему-то не принимает параметр -file

:((


Подскажите пожалуйста, как можно оставить только файлы (без дирректорий) без этого параметра?


Код: powershell
1.
( gci your_dir/* -rec |? { !$_.PSIsContainer } |? { $_.LastWriteTime -lt (вчерась) } ).FullName
...
Рейтинг: 0 / 0
Как в cmd получить список файлов старше 1 суток (forfiles не подходит)
    #39930736
пятый2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
volodin661
пятый2
volodin661,

Но появилась еще одна проблема.

На другом сервере почему-то не принимает параметр -file

:((


Подскажите пожалуйста, как можно оставить только файлы (без дирректорий) без этого параметра?


Код: powershell
1.
( gci your_dir/* -rec |? { !$_.PSIsContainer } |? { $_.LastWriteTime -lt (вчерась) } ).FullName



О, круто!






А может быть знаете как избавится от того что он длинные строки (файл с длинным именем или каталогов много) переносит на другую строку?

оставляет только 80 символов - остальные переносит.
...
Рейтинг: 0 / 0
Как в cmd получить список файлов старше 1 суток (forfiles не подходит)
    #39930737
пятый2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А надо целую строку оставить.

для моделирования ситуации можно у себя сощдать файл с длинным именем.
...
Рейтинг: 0 / 0
Как в cmd получить список файлов старше 1 суток (forfiles не подходит)
    #39930739
пятый2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Переносит если Out-String -Width более 80 символов поставить - иначе обрезает
...
Рейтинг: 0 / 0
Как в cmd получить список файлов старше 1 суток (forfiles не подходит)
    #39930940
пятый2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
уже в 100500-й раз убеждаюсь что винда не подходит для серверов.

не одно говно так другое вылазит.

каждый раз новый "сюрприз".
...
Рейтинг: 0 / 0
Как в cmd получить список файлов старше 1 суток (forfiles не подходит)
    #39931145
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пятый2
уже в 100500-й раз убеждаюсь что винда не подходит для серверов.

не одно говно так другое вылазит.

каждый раз новый "сюрприз".
не надо перекладывать вину с больной головы на здоровую, если руки из жопы, то проблемы будут в любой ОС. ОС это инструмент, если вы не умеете с ним работать, это ваши проблемы, а не проблема инструмента
...
Рейтинг: 0 / 0
Как в cmd получить список файлов старше 1 суток (forfiles не подходит)
    #39931207
пятый2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Roman Mejtes
пятый2
уже в 100500-й раз убеждаюсь что винда не подходит для серверов.

не одно говно так другое вылазит.

каждый раз новый "сюрприз".
не надо перекладывать вину с больной головы на здоровую, если руки из жопы, то проблемы будут в любой ОС. ОС это инструмент, если вы не умеете с ним работать, это ваши проблемы, а не проблема инструмента


Дружище, в линуксе это делается одной короткой строчкой.
Все работает четко.

А в винде чтобы сделать тоже самое, надо засунуть обе руки в жопу по самые локти.
Изначально все спроектировано через жопу.


Инструмент... ну да, это не проблема инструмента...

...
Рейтинг: 0 / 0
Как в cmd получить список файлов старше 1 суток (forfiles не подходит)
    #39931229
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пятый2
в линуксе это делается одной короткой строчкой.

Многие инструменты линукса успешно портированы в виндовс. Для начала просто приведи эту короткую строчку.
...
Рейтинг: 0 / 0
Как в cmd получить список файлов старше 1 суток (forfiles не подходит)
    #39931243
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,
это обычный мамкин линуксоид, который зашел в ветку Windows, чтоб рассказать нам о том, какое Windows говно и какая крутая ОС линукс, предварительно начитавшись о том, какие команды не поддерживаются в Windows. Неудачная попытка самоутвердится :)

Ну Enterprise сегменте не в курсе о том, что они дальше жить не могут без возможности найти файлы по дате одной командой.
...
Рейтинг: 0 / 0
Как в cmd получить список файлов старше 1 суток (forfiles не подходит)
    #39931315
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пятый2
crutchmaster
пятый2,

Поставить cygwin или coreutils и свести задачу к "как посмотреть список файлов старше суток в linux"
http://gnuwin32.sourceforge.net/
http://cygwin.com/


Не, надо сделать это без установки дополнительного софта.

Проблемы негров шерифа не волнуют
...
Рейтинг: 0 / 0
Как в cmd получить список файлов старше 1 суток (forfiles не подходит)
    #39931533
пятый2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Roman Mejtes

Ну Enterprise сегменте не в курсе о том, что они дальше жить не могут без возможности найти файлы по дате одной командой.


Как раз в курсе.

Просто в Enterprise сегменте не в курсе что такое виндоус.
...
Рейтинг: 0 / 0
Как в cmd получить список файлов старше 1 суток (forfiles не подходит)
    #39931786
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пятый2
Просто в Enterprise сегменте не в курсе что такое виндоус

Да ты шо?
...
Рейтинг: 0 / 0
Как в cmd получить список файлов старше 1 суток (forfiles не подходит)
    #39931915
пятый2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Изопропил
пятый2
Просто в Enterprise сегменте не в курсе что такое виндоус

Да ты шо?

Ага, гугель все на виндовых серверах все у себя держит, так же как и банки свои базы под виндой...
а и билинг сотовых операторов 100% серверов на винде... так же как и билинг электросбыта ... ну и социальные сети вконтактик там, фэйсбук, у них прям 150% серверов под виндой...
...
Рейтинг: 0 / 0
Как в cmd получить список файлов старше 1 суток (forfiles не подходит)
    #39932040
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пятый2
надо засунуть обе руки в жопу по самые локти.

Вот это было не плохо. Возьму на вооружение.
...
Рейтинг: 0 / 0
39 сообщений из 39, показаны все 2 страниц
Форумы / Windows [игнор отключен] [закрыт для гостей] / Как в cmd получить список файлов старше 1 суток (forfiles не подходит)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]