Форум программистов, компьютерный форум, киберфорум
PowerShell
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 11.08.2020
Сообщений: 1

Средство обработки копий файлов PowerShell

01.06.2022, 18:14. Показов 617. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, ищу помощь по данному заданию:

Разработать программу в командной среде Powershell, позволяющую анализировать
заданное дерево каталогов файловой системы на наличие дублированных файлов.
Интерактивно по запросу или в автоматическом режиме удалять копии файлов или
заменять их на жесткие ссылки. Формировать протокол с возможностью просмотра
выполненных изменений.

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

PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
param(
  [Parameter(Mandatory=$True)]
  [ValidateScript({Test-Path -Path $_ -PathType Container})]
  [string]$dir1
)
 
    Get-ChildItem -Recurse $dir1| 
    Group-Object Length | Where-Object {$_.Count -ge 2} | 
    Select-Object -Expand Group | Get-FileHash | 
    Group-Object hash | Where-Object {$_.Count -ge 2} | 
    Foreach-Object {
        $f1 = $_.Group[0].Path
        Remove-Item $f1
        New-Item -ItemType HardLink -Path $f1 -Target $_.Group[1].Path | Out-Null
    }
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.06.2022, 18:14
Ответы с готовыми решениями:

Поиск копий файлов и удаление найденных копий
Столкнулся с подобным заданием и никак, не могу понять как его решить: Разработать пакетный файл, находящий копии файлов в 2х заданных...

PowerShell или иное средство как обработчик запросов к объектам файловой системы
собственно, проблема: нужно создать сценарий на PowerShell (WSH, VBS или C# в PowerShell), позволяющий пропускать запросы к файлам и...

Печать нескольких копий через powershell
Добрый день! Подскажите, как через powershell напечатать несколько копий одного документа. Например, есть вот такой скрипт: Dir...

2
2805 / 503 / 120
Регистрация: 26.09.2020
Сообщений: 950
Записей в блоге: 5
01.06.2022, 21:32
PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Get-ChildItem -Recurse -File F:\programs\bin\git |
 ? Length -gt 1 | # фильтр файлов по размеру, дабы исключить 0 и 1 байтовые, семафорные файлы…
 group Length |
 ? Count -ge 2 |
 select -exp group |
 Get-FileHash |
 group Hash |
 ? Count -eq 5 |
 % {
  $_.Group[0] # первый файл в группе
  [string]::new("─", $host.UI.RawUI.WindowSize.Width) # рисование одинарной
  for ($i=1; $i -lt $_.Group.Count; $i++) {
   $_.Group[$i] # последующие файлы в группе, ака дубли
  }
  [string]::new("═", $host.UI.RawUI.WindowSize.Width) # рисование двойной сплошной
 }
скрипт для показа группы файлов, только.
каталог и циферки Count -eq 5, взяты исключительно для теста, на моей системе
для показа, группы разделены двойной сплошной, первый файл в группе подчеркнут одинарной.
Миниатюры
Средство обработки копий файлов PowerShell  
1
 Аватар для alhaos
1929 / 545 / 154
Регистрация: 20.02.2019
Сообщений: 2,664
Записей в блоге: 65
03.06.2022, 12:33
PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
using namespace System.IO
using namespace System.Security.Cryptography
using namespace System.Collections.Generic
 
$HashSet = [HashSet[string]]::new()
 
$SHA256 = [SHA256]::Create()
foreach ($filename in [Directory]::GetFiles('C:\tmp\TestEnvironment', '*.*', [SearchOption]::AllDirectories)){
    $fileStream = [file]::OpenRead($filename)
    [byte[]]$hash = $SHA256.ComputeHash($fileStream)
    $fileStream.Close()
    if (!$HashSet.Add([path]::GetFileName($filename) + (-join  $hash.ForEach{"{0:X}" -f $_}))){
        Write-Host ("dublicate file found {0}" -f $filename)
    }
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.06.2022, 12:33
Помогаю со студенческими работами здесь

Программное средство обработки данных по ос ANDROID
Здравствуйте! Помогите пожалуйста придумать тему по осисп . Программное средство обработки данных по ос ANDROID (курсовая )

Создание копий файлов
Дана папка, в которой находится некоторое количество .gif файлов. Нужно для каждого .gif файла создать две копии: у одной перед именем...

Средство переноса Файлов и Параметров в Windows 7?
Полезная вещичка! Но как то можно её запустить если Операционка накрылась и не загружается, чтоб после переустановки не настраивать с нуля?...

Создание резервных копий файлов
Здравствуйте. Читаю Byte of Python. Застрял на моменте с созданием резервных копий файлов(т.е. с решением задачи из книги). Код: ...

Нахождение копий файлов в каталогах
Здравствуйте, есть задание: Написать сценарий PowerShell, что находит копии файлов в двух заданных пользователем каталогах. Для каждой...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru