|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] удалить лишние ссылки, если имена файлов совпадают |
|
PowerShell - [решено] удалить лишние ссылки, если имена файлов совпадают
|
Ветеран Сообщения: 550 |
Здравствуйте, подскажите, как можно удалить лишние ссылки из txt файла. Лишние считаются, если имена файла, игнорируя разрешение совпадает. И такое условие.. если среди лишних ссылок есть та, в имени файла которой расширение mp4, то должна остаться именно эта ссылка, а удалиться та, которая с другим расширением.. А если они все с расширением mp4, то должна остаться только одна.. если нет лишних с mp4, то также должна одна остаться.
Пример: файл 1.txt https://k2s.cc/file/c7dert7de8/0301start.mp4 https://k2s.cc/file/579a1wer7c7/0301start.mp4 https://k2s.cc/file/c97ary2a49/0301kino.mp4 https://k2s.cc/file/a2f4bwee2/0301kino.avi https://k2s.cc/file/3fa267twf730/0301ugol.mp4 https://k2s.cc/file/ab4e4hjef31/0301ugol.avi https://k2s.cc/file/0161s2edf4a7f/0301ugol.mp4 https://k2s.cc/file/8c504fgj993c/0302krot.mp4 https://k2s.cc/file/b646bf1vd4nb2/0305www.mp4 https://k2s.cc/file/092e70sdf57672/0308rr.mp4 https://k2s.cc/file/fda01cсми6dd/0308ert.mp4 https://k2s.cc/file/273c612выап0/0308ghg.mp4 https://k2s.cc/file/cb4d00ур5ea2/0309гншb.mp4 https://k2s.cc/file/579a1wer7c7/0301start.mp4 https://k2s.cc/file/c97ary2a49/0301kino.mp4 https://k2s.cc/file/0161s2edf4a7f/0301ugol.mp4 https://k2s.cc/file/8c504fgj993c/0302krot.mp4 https://k2s.cc/file/b646bf1vd4nb2/0305www.mp4 https://k2s.cc/file/092e70sdf57672/0308rr.mp4 https://k2s.cc/file/fda01cсми6dd/0308ert.mp4 https://k2s.cc/file/273c612выап0/0308ghg.mp4 https://k2s.cc/file/cb4d00ур5ea2/0309гншb.mp4 ![]() |
|
Отправлено: 11:32, 17-03-2024 |
fascinating rhythm Сообщения: 6633
|
Профиль | Отправить PM | Цитировать |
------- Последний раз редактировалось DJ Mogarych, 19-03-2024 в 20:56. Причина: v2 Отправлено: 16:34, 18-03-2024 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 550
|
Профиль | Отправить PM | Цитировать DJ Mogarych, спасибо, проверил на боевом файле, судя по другой программе очистилось больше ссылок, чем показывает программа ссылок с одинаковыми именами файлов (игнорируя расширение). Посмотрел, скрипт удаляет все ссылки (не только лишние), если нету не одной ссылки с mp4. например, если две ссылки с именами.расширениями 0215start.wmv, то они обе удалятся, и ни одной не останется, можно ли сделать, чтобы осталась одна (желательно самая нижняя, если это возможно).
-- Необходимо удалить только лишние (это если имена файла (ИГНОРИРУЯ РАСШИРЕНИЕ) совпадает), т.е. должно остаться по одной ссылки для каждого имени файла. У mp4 ссылок как бы приоритет: - если есть лишние ссылки и в них разные расширения, то остается только одна с mp4... если mp4 несколько, остается самая нижняя. - если есть лишние ссылки, но не в одной нету mp4, то остается только одна, самая нижняя. - если нету лишних ссылок, то с ссылкой ничего не происходит, не важно какое у ней расширение. |
Отправлено: 09:04, 19-03-2024 | #3 |
Deadooshka Сообщения: 2521
|
Профиль | Отправить PM | Цитировать в .net есть методы всякие разные
gc $file | % { $uri = [Uri]$_ if (-not $uri.Segments -or -not ($fn = $uri.Segments[-1])) { return } [pscustomobject]@{ FN = [IO.Path]::GetFileNameWithoutExtension($fn) E = [IO.Path]::GetExtension($fn) S = $_ } } | group FN | % { [array]$mp4 = $_.Group | ? E -eq '.mp4' if ($mp4.length) { $mp4[-1].S} else { $_.Group[-1].S } } | out-file ($file + '___.txt') -enc default |
Последний раз редактировалось Sham, 19-03-2024 в 15:10. Причина: $uri.Segments мб null Отправлено: 12:22, 19-03-2024 | #4 |
fascinating rhythm Сообщения: 6633
|
Профиль | Отправить PM | Цитировать поправил
|
|
------- Отправлено: 20:56, 19-03-2024 | #5 |
Ветеран Сообщения: 550
|
Профиль | Отправить PM | Цитировать спасибо, оба скрипта работают, все как хотел
![]() |
Отправлено: 07:27, 21-03-2024 | #6 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Удалить лишние файлы | Patroklos | Скриптовые языки администрирования Windows | 8 | 11-06-2019 11:50 | |
Разное - [решено] Можно ли удалить имена файлов? | monster | Microsoft Windows 8 и 8.1 | 12 | 13-11-2012 01:02 | |
CMD/BAT - BAT файлом сравнить ряд файлов по размеру - если общий размер сходится удалить | invisibleon | Скриптовые языки администрирования Windows | 16 | 12-10-2012 08:55 | |
2008 R2 - Сайт не виден из локальной сети (имена домена и сайта не совпадают) | ramzesu-info | Windows Server 2008/2008 R2 | 1 | 04-02-2012 07:44 | |
удалить лишние файлы | binders | Вебмастеру | 3 | 29-09-2011 17:50 |
|