@dinaff

Как найти файлы по владельцу и времени после их создания?

Перейду сразу к сути.

ОС: Windows
Задача:
Дана иерархия каталогов. Нам дают абсолютный адрес одного из каталогов. Необходимо найти в этом каталоге все файлы по опр. шаблону, принадлежащие опр. пользователю, и время после создания, которых больше 2 дней. Реализовать либо как скрипт bat, либо конвейером команд.
Попытка решить:
1. Поиск по шаблону делал с помощью where /r абс путь, который нам дали [шаблон]. Таким образом, я получил абсолютные адреса всех файлов, которые удовлетворяют моему шаблону.
2. Поиск владельца думал сделать либо через dir /q | find "username", либо через cacls "путь до файла" | find
"username". Первый вариант не очень так как в записи пути к файлу может быть подстрока username, у второго похожие проблемы.
3.Время после создания. Вроде решается парсингом результата команды dir и дальнейшим танцем с бубном
4.В конечном счете, для копирования мне необходимо знать абсолютный путь и название файла.

Основная проблемы это во 2 и 3 пунктах.
Есть ли у кого идеи как с этим быть?
  • Вопрос задан
  • 640 просмотров
Решения вопроса 1
@dinaff Автор вопроса
Решил пункты 1,2,4.
forfiles /p [Путь где ищем] /d -[кол-во дней] /m [маска] /s /c "cmd /c copy @path [Путь куда вставляем]@file"

Пример
forfiles /p homework /d -2 /m *.txt /s /c "cmd /c copy @path D:\good\@file"

Есть идеи как проверить принадлежит ли файл пользователю?

UPD:
Костыльно. Но должно работать
forfiles /p [Путь поиска] /d -[кол-во дней] /m [маска] /s /c "cmd /c dir /q @path | find \"%computername%\%username%\" && copy @path [Путь для вставки]@file"

Пример
forfiles /p homework /d -2 /m *.txt /s /c "cmd /c dir /q @path | find \"%computername%\%username%\" && copy @path D:\good\@file"

Минусы:
Не смог реализовать создание нового файла при копировании, если файл уже существует
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Karpion
В W'10 есть подсистема Linux, а в ней - программа find. То, что Вы хотите - там "из коробки".
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы