Гость
Форумы / Windows [игнор отключен] [закрыт для гостей] / Как в cmd получить список файлов старше 1 суток (forfiles не подходит) / 25 сообщений из 39, страница 1 из 2
25.02.2020, 11:40
    #39930481
пятый2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в cmd получить список файлов старше 1 суток (forfiles не подходит)
Коллеги, добрый день.


Есть задача в командной строке получить список файлов старше 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
25.02.2020, 11:51
    #39930488
пятый2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в cmd получить список файлов старше 1 суток (forfiles не подходит)
Или виндоус в принципе не может это сделать?

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

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

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


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

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

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

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


Спасибо.

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

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

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

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

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

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


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

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

Совсем не то.

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

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

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
25.02.2020, 12:39
    #39930531
пятый2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в cmd получить список файлов старше 1 суток (forfiles не подходит)
т.е. надо чтобы вывод был вот такой:



Код: 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
25.02.2020, 12:55
    #39930547
пятый2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в cmd получить список файлов старше 1 суток (forfiles не подходит)
Мимопроходящий,


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


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

ты гля!
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
25.02.2020, 13:18
    #39930567
volodin661
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в cmd получить список файлов старше 1 суток (forfiles не подходит)
пятый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
25.02.2020, 13:18
    #39930568
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в cmd получить список файлов старше 1 суток (forfiles не подходит)
пятый2
список файлов старше 1 суток
Это с учётом времени, или "не сегодня"?

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

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

ты гля!


Вы же ничего полезного не написали ни в этой теме ни в той что привели ссылочкой.
...
Рейтинг: 0 / 0
25.02.2020, 13:27
    #39930577
пятый2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в cmd получить список файлов старше 1 суток (forfiles не подходит)
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
25.02.2020, 13:30
    #39930579
пятый2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в cmd получить список файлов старше 1 суток (forfiles не подходит)
Akina
пятый2
список файлов старше 1 суток
Это с учётом времени, или "не сегодня"?



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

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

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

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




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

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


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

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

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



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

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

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

:((


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


Надо как-то в ней отфильтровать дирректории из вывода..
...
Рейтинг: 0 / 0
25.02.2020, 16:59
    #39930699
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в cmd получить список файлов старше 1 суток (forfiles не подходит)
Код: 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
Форумы / Windows [игнор отключен] [закрыт для гостей] / Как в cmd получить список файлов старше 1 суток (forfiles не подходит) / 25 сообщений из 39, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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