Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

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

Ответить
Настройки темы
Любой язык - поиск уникальных файлов

Аватара для Peutrov

Старожил


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

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


Есть папка с множеством подпапок, подподпапок и т.д. В них много файлов-дубликатов и мало уникальных файлов.
Как быстро найти только уникальные? (Сравнение по имени и размеру файла)

Total Commander прекрасно ищет дубликаты. Но уникальный файл подсветить не может.
Файлы надо только найти: удалять, перемещать нельзя.
Существует ли простое решение?
Спасибо

Отправлено: 03:42, 26-05-2020

 

Ветеран


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

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


Цитата Peutrov:
Существует ли простое решение? »
Конечно. Скрипт на PowerShell будет вполне универсальным решением.

Что Вы с этими файлами дальше делать будете?

Отправлено: 20:24, 26-05-2020 | #2



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

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


Аватара для Peutrov

Старожил


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

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


Цитата Iska:
Скрипт на PowerShell »
жаль что потом эти файлы нельзя скопировать, переместить не прибегая к коду
спасибо

Отправлено: 22:42, 26-05-2020 | #3


Аватара для DJ Mogarych

fascinating rhythm


Moderator


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

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


Цитата Peutrov:
жаль что потом эти файлы нельзя скопировать, переместить не прибегая к коду »
Код там проще пареной репы. Вот вывод списка:
Код: Выделить весь код
dir D:\Downloads -File -Recurse |sort name -Unique |sort length -Unique
Копирование или перемещение - это ещё всего лишь одна команда.

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)

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

Отправлено: 09:13, 27-05-2020 | #4


Ветеран


Contributor


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

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


DJ Mogarych, Попробовал Ваш код. В папку (пускай D:\Downloads) скопировал другую папку с подпапками и файлами в них. В этой же папке создал подпапку и скопировал туда то же самое. Один файл изменил. Похоже, приведенная команда перечисляет все файлы.

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

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

Отправлено: 14:46, 27-05-2020 | #5


Ветеран


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

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


pwsh
Код: Выделить весь код
((gci /data/downloads -File -Recurse | group length | group name).group | where count -eq 1).group.fullname
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:46, 27-05-2020 | #6


Забанен


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

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


Уникальность файла определяется его энтропией, а не размером (не говоря о названии). И приведенные выше примеры не учитывают этот нюанс. Если с расчетом уникальности не хочется заморачиваться, более или менее верным будет удаление дубликатов по хэшу.
Код: Выделить весь код
(gci X:\Path -file -r | Get-FileHash | group Hash).Where{$_.Count -gt 1}.ForEach{$_.Group | select -exp Path -skip 1} | ri -fo

Последний раз редактировалось greg zakharov, 27-05-2020 в 18:03.

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

Отправлено: 16:56, 27-05-2020 | #7


Ветеран


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

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


Цитата Peutrov:
жаль что потом эти файлы нельзя скопировать, переместить не прибегая к коду »
Можно. Собранные скриптом имена файлов помещаете вместе с путями в текстовый файл, берёте Far Manager, открываете список файлов из текстового файла во временной панели и работаете с ними, как обычными ссылками на файлы — т.е., можете обычным для Far Manager'а образом копировать файлы, перемещать, удалять, просматривать, редактировать и т.п.

Отправлено: 20:54, 27-05-2020 | #8


Аватара для DJ Mogarych

fascinating rhythm


Moderator


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

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


Цитата greg zakharov:
Уникальность файла определяется его энтропией, а не размером (не говоря о названии). »
Это было ясно с самого начала, но ТС хотел именно размер и имя.
Расчёт хэша - вещь хорошая, но выполняться это будет весьма небыстро.

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)


Отправлено: 21:31, 27-05-2020 | #9


Забанен


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

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


DJ Mogarych, будучи нарывом на заднице ложкой дёгтя в бочке меда, хочу ещё раз указать, что уникальность не может определяться такими параметрами как размер и имя: файлы по размеру могут быть и одинаковы, но вы же не станете закладываться на детородный орган почку, дескать, их содержание также одинаково, верно? На счет имён - вообще отдельный разговор. Так что либо хэши, либо unsafe код и энтропия.
Цитата DJ Mogarych:
Расчёт хэша - вещь хорошая, но выполняться это будет весьма небыстро.
Благодартвуйте, кэп!

Отправлено: 22:13, 27-05-2020 | #10



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Поиск файлов. zombivadim Скриптовые языки администрирования Windows 1 02-05-2016 01:18
CMD/BAT - Поиск цифр в текстовом файле и последующий их поиск в названии файлов массива (лог.) antares_80@vk Скриптовые языки администрирования Windows 10 25-10-2015 11:34
CMD/BAT - [решено] Поиск уникальных значений по файлу Sat_Kelman Скриптовые языки администрирования Windows 2 22-11-2011 12:12
CMD/BAT - [решено] Поиск, остановка процесса, поиск и замена файлов на разных дисках 4zz Скриптовые языки администрирования Windows 2 21-02-2011 16:07
подсчет уникальных значаний поля в MySQl Vlad Drakula Вебмастеру 17 20-06-2004 22:48




 
Переход