@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}


Таким образом получил перечень файл с уникальностью по второй части имени, но нужно немного иначе, нужно получается файлы не входящие в эту группу и их удалить, т.е. чтобы только остались уникальные
  • Вопрос задан
  • 75 просмотров
Решения вопроса 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
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы