Задать вопрос
@bad_shape_guy

Как удалить одинаковые файлы по подстроке с помощью Powershell?

Добрый день, подскажите пожалуйста, не получается решить
Имеется папка с файлами:
1-1.txt
1-2.txt
1-3.txt
2-1.txt
2-2.txt
2-4.txt
3-1.txt


Нужно сделать так, чтобы в папке остались только файлы с неповторяющейся второй частью имени, которая после знака тире. Т.е. в примере выше, видно что 2-1, 2-2 и 3-1 уже идут на повторение относительно 1-1, 1-2
Другими словами в результате должны остаться только следующие файлы
1-1.txt
1-2.txt
1-3.txt
2-4.txt


Сделал следующее:
Get-ChildItem "C:\Temp\files\*.txt" | Group-Object {$_.Name.Substring(2)} | %{$_.Group[0].FullName}


Таким образом получил перечень файл с уникальностью по второй части имени, но нужно немного иначе, нужно получается файлы не входящие в эту группу и их удалить, т.е. чтобы только остались уникальные
  • Вопрос задан
  • 141 просмотр
Подписаться 2 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Stepik
    PowerShell для начинающих: Основы для IT-специалистов
    1 неделя
    Далее
  • Skillbox
    Системный администратор с нуля
    6 месяцев
    Далее
  • Яндекс Практикум
    Специалист по информационной безопасности
    11 месяцев
    Далее
Решения вопроса 1
@MaxKozlov Куратор тега PowerShell
Пропустить первые элементы в каждой группе ?
Get-ChildItem "C:\Temp\files\*.txt"  | Group-Object {$_.Name.Substring(2)} | Foreach-Object { $_.Group | Select -Skip 1 }
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@nullemotion
Get-ChildItem *.txt | Where-Object fullname -notin (Get-ChildItem *.txt | Group-Object {$_.Name.Substring(2)} | ForEach-Object {$_.Group[0].FullName}) # | Remove-Item
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
Монетка Екатеринбург
от 130 000 до 160 000 ₽
Vital Partners Москва
от 200 000 до 300 000 ₽
Сбер Москва
от 200 000 до 300 000 ₽