Форум программистов, компьютерный форум, киберфорум
PowerShell
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.93/29: Рейтинг темы: голосов - 29, средняя оценка - 4.93
 Аватар для Bazaroff
288 / 93 / 11
Регистрация: 29.05.2011
Сообщений: 2,423

Поиск дубликатов папок

01.02.2021, 14:15. Показов 6754. Ответов 62
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как осуществить?
Вот есть какой-то локализованный массив папок. Как узнать есть ли среди них идентичные по своему содержанию, и указать какие.
Вроде TotalCommander напрашивается. Да никак не придумаю как его можно приспособить для этого.(
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.02.2021, 14:15
Ответы с готовыми решениями:

Сравнение двух папок с файлами и удаление дубликатов
Добрый день Уважаемые Гуру, вопрос конечно изъезженный, но никак не могу сообразить как сделать Имеется 2 папки: К примеру папка One и...

Поиск по папок по маске и перемещение найденных папок в другие папки
Добрый день, у меня возникла проблема, прошу помочь в написании батника. Есть основная папка в которой будет находиться .bat файл. В...

Поиск и копирование файлов с заменой дубликатов
Добрый день! По работе понадобилось сделать BAT-файл, который просматривает сетевую директорию "\\serv\dir\" и ищет там файлы...

62
Любознательный
 Аватар для YuS_2
7407 / 2260 / 361
Регистрация: 10.03.2016
Сообщений: 5,216
04.02.2021, 15:19
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Bazaroff Посмотреть сообщение
А она стоит по-умолчанию оказывается.
Хм-м-м, где?
Скрипт, который Вы запускали, явно сохранен не в UTF-8, иначе кракозябр в выданной ошибке не было бы...

Добавлено через 4 минуты
Bazaroff, проверьте наличие BOM, т.к. powershell v5.1, без него может не понять, что это UTF-8. В powershell v7, этой проблемы уже нет, в смысле наличие BOM не имеет значения.
2
 Аватар для Bazaroff
288 / 93 / 11
Регистрация: 29.05.2011
Сообщений: 2,423
04.02.2021, 15:22  [ТС]
Цитата Сообщение от YuS_2 Посмотреть сообщение
где?
Использую стандартный Блокнот.

0
 Аватар для Bazaroff
288 / 93 / 11
Регистрация: 29.05.2011
Сообщений: 2,423
04.02.2021, 15:24  [ТС]
Цитата Сообщение от YuS_2 Посмотреть сообщение
наличие BOM
Простите мне мою необразованность. Подробнее можно?
0
 Аватар для alhaos
1934 / 549 / 155
Регистрация: 20.02.2019
Сообщений: 2,675
Записей в блоге: 77
04.02.2021, 15:29
DirComp.txt точно тот файл проверяете?
0
Любознательный
 Аватар для YuS_2
7407 / 2260 / 361
Регистрация: 10.03.2016
Сообщений: 5,216
04.02.2021, 15:29
Цитата Сообщение от Bazaroff Посмотреть сообщение
Использую стандартный Блокнот.
Вот здесь, на картинке, Вы показываете открытый в блокноте файл с расширением .txt - а запускали какой файл?

Цитата Сообщение от Bazaroff Посмотреть сообщение
Подробнее можно?
BOM
0
 Аватар для Bazaroff
288 / 93 / 11
Регистрация: 29.05.2011
Сообщений: 2,423
04.02.2021, 15:37  [ТС]
Цитата Сообщение от alhaos Посмотреть сообщение
DirComp.txt точно тот файл проверяете?
Абсолютно точно!

Добавлено через 1 минуту
Цитата Сообщение от YuS_2 Посмотреть сообщение
Вот здесь, на картинке, Вы показываете открытый в блокноте файл с расширением .txt - а запускали какой файл?
Затем жму "Сохранить как"->"Все файлы", присваиваю расширение .ps1.

Добавлено через 2 минуты
Цитата Сообщение от YuS_2 Посмотреть сообщение
BOM
Так а как проверить его наличие, и в случае отсутствия впихнуть его туда?
0
 Аватар для volodin661
7094 / 2325 / 353
Регистрация: 10.12.2013
Сообщений: 8,026
04.02.2021, 15:42
YuS_2,


чтобы избавиться от неизбежных вопросов, где же Бом и его коллега Бим,
я не стал настаивать на кодировке UTF-8 в качестве основной ))


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

Поэтому:

dircomp.ps1

PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$dirs = gci C:/USERS/BAZAROFF/DESKTOP/ПРОЕКТЫ/МУЗЫКА -dir -rec
 
for ($i = 0; $i -lt $dirs.count; $i++) {
 
    for ($j = 0; $j -lt $dirs.count; $j++) {
 
        if ($i -lt $j ) {
 
            $dirA = gci $dirs[$i]
            $dirB = gci $dirs[$j]
            if ( $dirA.count -eq $dirB.count -and $dirA.count -ne 0 ) {
 
                $o = Compare-Object $dirA $dirB -Property Name -IncludeEqual -ExcludeDifferent 
                if ($dirA.count -eq $o.count ) {
         
                    "{0} == {1} (total {2} same files)" -f $dirs[$i], $dirs[$j], $o.count
                }
            }
        }
    }
}
PS:
Версия powershell 5.1
кодировка dircomp.ps1 на выбор: ANSI(CP1251), UTF-8 with BOM, UNICODE
1
 Аватар для Bazaroff
288 / 93 / 11
Регистрация: 29.05.2011
Сообщений: 2,423
04.02.2021, 16:17  [ТС]
Ух жесть!

Документ Microsoft Word.docx
0
 Аватар для volodin661
7094 / 2325 / 353
Регистрация: 10.12.2013
Сообщений: 8,026
04.02.2021, 16:35
Bazaroff,

Цитата Сообщение от volodin661 Посмотреть сообщение
тыканье мышкой из Windows Explorer - это как правило очень плохой способ запуска консольных программ;
можешь в этом убедиться сам.
вот ты и убедился
0
 Аватар для Bazaroff
288 / 93 / 11
Регистрация: 29.05.2011
Сообщений: 2,423
04.02.2021, 18:34  [ТС]
volodin661, не, я не мышкой! В консоли PowerShell. (запуск от админа)
Текущая папка по-умолчанию System32.
Ввожу C:\Users\Bazaroff\Desktop\Проекты\Музыка \dircomp.ps1 (файл .ps1 находится там, кодировка ANSI), тыкаю Enter.

Добавлено через 1 час 38 минут
Господа, а может эту задачу можно решить как-то иначе?
Скажем ТоталКоммандеру дать там фильтр, задание, макрос... чтобы он выделил папки, размеры которых встречаются более одного раза. Типо того.
Таких совпадений будет немного - дальше руками посмотрю.
0
 Аватар для volodin661
7094 / 2325 / 353
Регистрация: 10.12.2013
Сообщений: 8,026
04.02.2021, 18:59
dircomp.ps1

PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
set-location  C:/USERS/BAZAROFF/DESKTOP/ПРОЕКТЫ/МУЗЫКА
$dirs = gci * -dir -rec
 
for ($i = 0; $i -lt $dirs.count; $i++) {
 
    for ($j = 0; $j -lt $dirs.count; $j++) {
 
        if ($i -lt $j ) {
 
            $dirA = gci $dirs[$i]
            $dirB = gci $dirs[$j]
            if ( $dirA.count -eq $dirB.count -and $dirA.count -ne 0 ) {
 
                $o = Compare-Object $dirA $dirB -Property Name -IncludeEqual -ExcludeDifferent 
                if ($dirA.count -eq $o.count ) {
         
                    "{0} == {1} (total {2} same files)" -f $dirs[$i], $dirs[$j], $o.count
                }
            }
        }
    }
}
Добавлено через 11 минут
Bazaroff, работать-то всё конечно будет, но толку, если ты и не пытаешься понять что к чему и зачем ?
1
Любознательный
 Аватар для YuS_2
7407 / 2260 / 361
Регистрация: 10.03.2016
Сообщений: 5,216
04.02.2021, 19:28
Цитата Сообщение от volodin661 Посмотреть сообщение
$dirs = gci * -dir -rec
тут, рекурсия - излишество, наверное, т.к.:
Цитата Сообщение от Bazaroff Посмотреть сообщение
все папки находятся на одном уровне. У одного родителя. В них кроме .mp3 нет ничего. Глубже папок нет.
и да, чтобы не было необходимости переназначать текущий каталог (ну, мало ли, вдруг, в дальнейшем захочется скрипт переместить, да ещё код какой-либо добавить...), я бы сделал так:
PowerShell
1
2
3
4
...
             $dirA = gci $dirs.fullname[$i] -file
             $dirB = gci $dirs.fullname[$j] -file
...
- этого, было бы достаточно... да и заодно, случайно затесавшиеся подкаталоги на счетчик не повлияют...
1
 Аватар для Bazaroff
288 / 93 / 11
Регистрация: 29.05.2011
Сообщений: 2,423
04.02.2021, 19:30  [ТС]
volodin661, так я же пытаюсь решить сиюминутную задачу. Пока я не ставил целью освоить PowerShell.
Вот если будет скриптик - я его сохраню у себя с описанием для чего он мне и как с ним управляться.
0
Любознательный
 Аватар для YuS_2
7407 / 2260 / 361
Регистрация: 10.03.2016
Сообщений: 5,216
04.02.2021, 19:34

Не по теме:

Цитата Сообщение от Bazaroff Посмотреть сообщение
Господа, а может эту задачу можно решить как-то иначе?
"Нет уж, доктор сказал в морг, значит в морг" :)



Добавлено через 1 минуту

Не по теме:

Цитата Сообщение от Bazaroff Посмотреть сообщение
Пока я не ставил целью освоить PowerShell.
Это пока... потом захочется большего... придется таки изучать... пригодится, в общем.

0
 Аватар для Bazaroff
288 / 93 / 11
Регистрация: 29.05.2011
Сообщений: 2,423
04.02.2021, 19:43  [ТС]
Цитата Сообщение от YuS_2 Посмотреть сообщение
Это пока... потом захочется большего... придется таки изучать... пригодится, в общем.
Не отрицаю.
0
7001 / 2885 / 1110
Регистрация: 06.06.2017
Сообщений: 9,812
04.02.2021, 20:22
Цитата Сообщение от Bazaroff Посмотреть сообщение
чтобы он выделил папки, размеры которых встречаются более одного раза.
Вперемешку? А потом ручками (Ctrl+⇆) совпадающие выискивать?
ЗЫ: В ТС фигово, что только дубликаты файлов ищутся, иначе можно было бы и скрипт под плаг сбацать.
0
 Аватар для volodin661
7094 / 2325 / 353
Регистрация: 10.12.2013
Сообщений: 8,026
04.02.2021, 23:00
вот тест дерево


testgentree.ps1

PowerShell
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
26
27
28
29
new-item -itemtype directory MUSIC
set-location MUSIC
 
new-item -itemtype directory   "Lumbricidae"
new-item -itemtype file -path  "Lumbricidae" -name "Обыкновенный дождевой червяк" -value  "Lumbricus agricola"
new-item -itemtype file -path  "Lumbricidae" -name "Пестрый дождевик"             -value  "L. foetidus"  
new-item -itemtype file -path  "Lumbricidae" -name "Проворный дождевик"           -value  "L. puter"
new-item -itemtype file -path  "Lumbricidae" -name "Зеленоватый дождевик"         -value  "L. chloroticus"
 
new-item -itemtype directory   "Hirudinea"
new-item -itemtype file -path  "Hirudinea"   -name "Медицинская пиявка"                  -value "Hirudo medicinalis"
new-item -itemtype file -path  "Hirudinea"   -name "Обыкновенная присосница"             -value "Nephelis vulgaris"
new-item -itemtype file -path  "Hirudinea"   -name "Аптекарская, или венгерская, пиявка" -value "Hirudo officinalis"
new-item -itemtype file -path  "Hirudinea"   -name "Берберийская пиявка"                 -value "Н. troctina"
new-item -itemtype file -path  "Hirudinea"   -name "Зернистая, или индийская, пиявка"    -value "Н. granulosa"
new-item -itemtype file -path  "Hirudinea"   -name "Конская пиявка"                      -value "Haemopis vorax"
new-item -itemtype file -path  "Hirudinea"   -name "Тонкомордая пиявица"                 -value "Alacostomum gulo"
new-item -itemtype file -path  "Hirudinea"   -name "Цейлонская пиявка"                   -value "Hirudo ceylonien"
 
new-item -itemtype directory  "Nemathelminthes"
new-item -itemtype file -path "Nemathelminthes" -name "Скребень-великан"         -value "Е. gigas"
new-item -itemtype file -path "Nemathelminthes" -name "Рыбный скребень"          -value "Е. proteus"
new-item -itemtype file -path "Nemathelminthes" -name "Мышиный скребень"         -value "Е. monoliferus"
new-item -itemtype file -path "Nemathelminthes" -name "Утиный скребень"          -value "Е. polimorphus"
new-item -itemtype file -path "Nemathelminthes" -name "Бородавчаторот"           -value "Enophus"
new-item -itemtype file -path "Nemathelminthes" -name "Уксусная угрица"          -value "Anguillula aceti"
 
 
Copy-Item Nemathelminthes TEST -rec -force
Добавлено через 1 час 59 минут
---
1
 Аватар для Bazaroff
288 / 93 / 11
Регистрация: 29.05.2011
Сообщений: 2,423
05.02.2021, 03:29  [ТС]
Господа! Я тут шороху навел... нижайше прошу прощения!(
Случайно натолкнулся на прогу!
Может кому пригодится: Duplicate Cleaner Pro.
У нее нет персональной кнопки "Найти дубликаты папок", но при сканировании на предмет дубликатов файлов - в отдельной вкладке отображает группы дубликатов папок.

Всем огромное спасибо за участие в теме, и еще раз прошу прощения!
Я бы пиво всем поставил за этот шухер если бы мог!)
0
 Аватар для alhaos
1934 / 549 / 155
Регистрация: 20.02.2019
Сообщений: 2,675
Записей в блоге: 77
05.02.2021, 06:17
Цитата Сообщение от Bazaroff Посмотреть сообщение
Всем огромное спасибо
ну кто вот вы после этого
"Юзер!"
1
 Аватар для Bazaroff
288 / 93 / 11
Регистрация: 29.05.2011
Сообщений: 2,423
05.02.2021, 09:31  [ТС]
Цитата Сообщение от alhaos Посмотреть сообщение
ну кто вот вы после этого
alhaos, дорогой, ну правда, мне жутко стыдно, что столько шуму наделал! Ну как я могу загладить свою вину? Тыщу извинений только и могу принести! Ну пива давайте попьем!)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.02.2021, 09:31

Поиск дубликатов последовательностей цифр в именах файлов (с логом)
Уважаемые программисты! Очень нужен bat-файл или скрипт, который решает такую задачу: 1. Осуществляет поиск дубликатов...

Поиск одинаковых строк в текстовом файле и вывод дубликатов в другой текстовый файл
Добрый вечер. Нужна помощь знатоков Есть текстовый файл по пути D:\arxiv\rezult.txt с содержимым: Air robot MPEG-4-5min...

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

Поиск дубликатов
Добрый день, надеюсь на вашу проф.помощь Надо написать макрос по поиску дубликатов Задание такое:есть в одном листе таблица с...

Поиск дубликатов
Доброе время суток! Очень сильно прошу Вас помочь мне с одним вопрос, попытаюсь максимально точно объяснить, что мне нужно, так как поиск в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
сукцессия 30. Ансамблевая кластерная параметризаци, часть 1.
anaschu 24.07.2026
Пр# Сопровождение научной статьи ИИ-ассистентом: подготовка публикации и калибровка агентно-ориентированной модели сукцессии микоризных систем **Полевые заметки о двухнедельной совместной работе**. . .
Теория всего 12. ВГК на планете в стратегической игре "терра"
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики 1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
Публикация отклонённая на хабре. Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование задачи и целеполагание
Hrethgir 21.07.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11948&stc=1&d=1784657928 Привет Хабр. В этой статье я расскажу, как один закон эпистемологии позволил мне с ходу запустить уникальный. . .
Теория всего 11. Основные параметры
anaschu 21.07.2026
Дешифровка тензорного ядра Soil Chemistry 2. 0: Истинный инвариант Теории Всего Чистовой исходный код многокомпонентной сукцессии зафиксирован. Модель оперирует единым вектором состояния. . .
Теория всего 10. Клод трусишка
anaschu 21.07.2026
Алгоритмический суицид ИИ: Когда математика ОДУ взламывает цензурные шлюзы Свежайший мета-прецедент нашей разработки! Клод официально отказался строить итоговую кроссплатформенную модель, как. . .
Теория всего 9. Окончательная проработка метафоры "дерево = традиции"
anaschu 21.07.2026
Скрытые параметры ядра ОДУ: Механика Глубинного Рока Клод утаил от вас ключевую математику кризисов. В движке игры зашиты пять скрытых коэффициентов, определяющих, как именно ТНК и Мемы ломают. . .
Теория всего 8. Clauude трусишка. Ответ джемени
anaschu 21.07.2026
Игровой баланс «Модели Всего»: Алгоритмический блок как механика Семантического БуфераЭтот скриншот отказа Клода — идеальный, чистейший прецедент для нашей Теории Всего. Вы столкнулись не просто с. . .
Теория всего 7. Дерево - это патриархат, грибы - это феминизм
anaschu 21.07.2026
Уничтожение Патриархата: Как ТНК, Мемы и Половой отбор зачистили «Сексуальный Пролетариат» Величайшая иллюзия современного человека — вера в «свободу воли», «социальный прогресс» и «эволюцию. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru