0 / 0 / 0
Регистрация: 06.08.2018
Сообщений: 59
1

Автоматизированная работа с плейлистами Iptv в powershell

24.01.2020, 00:31. Показов 10356. Ответов 43

Author24 — интернет-сервис помощи студентам
Всем доброго времени суток.
Есть плейлист большой с группами group-title.
Пример :
PowerShell
1
2
3
4
#EXTINF:-1 group-title="ВИДЕОКАМЕРЫ" tvg-logo="http://ekzot.ucoz.net/ch_icons/v/vilamoura.png",VILAMOURA
http://video-auth1.iol.pt:1935/beachcam/vilamoura/chunks.m3u8
#EXTINF:119740 group-title="ФУТБОЛ" tvg-logo="http://ekzot.ucoz.net/ch_icons/m/match_futbol_3.png",Матч! Футбол 3 [SD]
http://b1.only4.tv/1402/video.m3u8?token=tKxpeDcuOQ
Некоторые группы мне не нужны
Пример:
PowerShell
1
2
#EXTINF:-1 group-title="GERMANY" tvg-logo="https://i.**********/YCqVWjw.png",OK4 Koblenz
http://stream-cdn.ok54.de/hls/ok4.m3u8?fluxustv.m3u8
А есть которые нужны :
PowerShell
1
2
#EXTINF:5803088 group-title="️ ФИЛЬМЫ" tvg-logo="http://ekzot.ucoz.net/ch_icons/t/tolko_ne_oni.png",Только не они (2018)
http://hls.kinoplayer.co/hls/tolko-ne-oni.2O18.O.HDRip/playlist.m3u8
Добавлено через 6 минут
Стоит задача,сделать так чтобы в итоговом файле не присутствовали Каналы которые не нужны (Название и ссылка) .
То есть нужно парсить файл на совпадения (-match) и чтобы эти группы или удалялись (вроде это невозможно или возможно в temp файл и потом перезапись входного файла) или сделать чтобы нужные файлы копировались в другой файл.
Также стоит учитывать,что нужные и ненужные группы будут добавляться из файла , по переменной (если это возможно) или каждый раз добавлять новые строчки скрипта чтобы дальше обрабатывались.

Друг помог написал скрипт и я пыпался заменять #EXTINF.*group-title' на #EXTINF.*желаемую группу для переноса '
Но с вышепоставленной задачей как-то не может справится .
Надеюсь тут мне помогут .
Код для дописывания групп в плейлист и перенос каналов с группами в файл.
PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#Основной скрипт блок
@(for($i, $arr = 0, (Get-Content F:\IPTV\4_Obyedinenie\TV\big_plist.m3u -Encoding utf8); $i -lt $arr.Length;) {
$a, $b = $arr[$i], $arr[$i + 1]
if ($a.StartsWith('#EXTINF') -and $b -match ':\/\/') {
#Каналы, где прописаны группы, сразу выводим в хост
if ($a -match '#EXTINF.*group-title' -and $b -match ':\/\/') {
"$a`n$b"
$i += 2
}
#В каналы, где нет групп, добавляем группу Разные
elseif ($a -notmatch '#EXTINF*group-title' -and $b -match ':\/\/' ) 
{
$a -replace '#EXTINF.*,(.*)',"#EXTINF:-1 group-title= `"NO Groups`",`$1`n$b" 
$i += 2
}
}
else {
++$i
continue
} | Out-File F:\IPTV\5_Cheking\TV\out_plist.m3u -Encoding utf8
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.01.2020, 00:31
Ответы с готовыми решениями:

Дипломная работа - Автоматизированная система управления поликлиникой!
Продам дипломную работу(полный комплект) - Автоматизированная система управления поликлиники...

Дипломная работа. Автоматизированная система по формированию и осуществлению контроля выполнения задач.
Ребята тема моего диплома "Автоматизированная система по формированию и осуществлению контроля...

работа с PowerShell
Добрый вечер, уважаемые Форумчане. есть задача, нужно написать скрипт PowerShell который бы...

Работа с Планировщиком Powershell
Доброго времени суток Вопрос следущего характера Освоил уже готовый скриптик, по созданию...

43
210 / 59 / 26
Регистрация: 16.06.2016
Сообщений: 193
06.02.2020, 15:56 21
Author24 — интернет-сервис помощи студентам
Работает. Вы что-то не так делали.
Миниатюры
Автоматизированная работа с плейлистами Iptv в powershell  
1
0 / 0 / 0
Регистрация: 06.08.2018
Сообщений: 59
06.02.2020, 16:45  [ТС] 22
Цитата Сообщение от AAT666 Посмотреть сообщение
Работает. Вы что-то не так делали.
Ну во первых вы написали сперва
PowerShell
1
2
$i=0
gc F:\IPTV\0_URLS\Input.txt | %{ $WebClient.DownloadFile($_,"F:\IPTV\0_URLS\my_file$i.m3u");++$i}
После того как я увидел ваш код
PowerShell
1
2
3
$WebClient = New-Object System.Net.WebClient
$i=0
gc F:\IPTV\0_URLS\Input.txt | %{ $WebClient.DownloadFile($_,"F:\IPTV\0_URLS\my_file$i.m3u");++$i}
То и у меня заработало
Спасибо
0
210 / 59 / 26
Регистрация: 16.06.2016
Сообщений: 193
06.02.2020, 16:57 23
Извиняюсь... все время забываю, что надо полностью приводить скрипт )))

Удачи!
0
0 / 0 / 0
Регистрация: 06.08.2018
Сообщений: 59
06.02.2020, 17:34  [ТС] 24
Скажите,а ссылки типа http://iptvpro.vision-new.org:... P&type=m3u нельзя проверить через StatusCode 200?
Что-то застывает на проверке.
0
210 / 59 / 26
Регистрация: 16.06.2016
Сообщений: 193
06.02.2020, 19:12 25
PowerShell
1
(iwr "http://iptvpro.vision-new.org:8789/get.php?username=IPTVPRO22VODS22&password=W2T29z9cBP&type=m3u" -UseBasicParsing).statuscode
0
0 / 0 / 0
Регистрация: 06.08.2018
Сообщений: 59
09.02.2020, 16:59  [ТС] 26
Это работает .
Но как сделать чтобы по такому принципу из файла брало ?
PowerShell
1
(iwr "F:\IPTV\Svalka\URLS_Input.txt" -UseBasicParsing).statuscode
Такое не прокатывает )

Добавлено через 28 минут
Есть задумка ,иногда попадаются каналы которые по подписке на определенном ip или адресе.

Хочется удалять такие адреса вообще из обработки,чтобы не затрачивать время в последующей обработке.
Я знаю,что удалять адреса прям из файла невозможно , но можно написать скрипт,чтобы находило и разбивало на разные файлы где есть нужная пара строк,а где нету .
Пример(не обращайте внимание на group-title они добавляются в конце всего пути обработки) :
ненужный канал
PowerShell
1
2
#EXTINF:-1 group-title="Познавательные",Fine living HD
http://myott.tv/stream/E4NBLH19Y5/273.m3u8
Нужный канал .
PowerShell
1
2
#EXTINF:111 group-title="Прочие каналы:",Fine Living HD
http://5.61.48.23/42/4e183238083d8e9e3e56f5f24145dc0464bfd608/111/stream.m3u8
Есть еще идея , но только пока не знаю как реализовать .
Есть у меня скрипт для удаления дубликатов , но он удаляет именно полный дубликат первая строчка (название канала и вторая(ссылка).
Идея заключается:попадаются каналы с разными названиями , но одинаковыми ссылками нужно чтобы удалялись каналы дублирующиеся именно по ссылками, .
Как можно реализовать?

Добавлено через 16 минут
Хочу еще добавить ,чтобы можно было добавлять ссылки .
0
210 / 59 / 26
Регистрация: 16.06.2016
Сообщений: 193
09.02.2020, 17:20 27
Цитата Сообщение от Siomsolyu Посмотреть сообщение
Но как сделать чтобы по такому принципу из файла брало ?
PowerShell
1
2
$new_urls_input = @()
gc "F:\IPTV\Svalka\URLS_Input.txt" | ?{ (iwr $_ -UseBasicParsing).statuscode -eq 200 } | %{ $new_urls_input += $_}
но Invoke-WebRequest загружает всю страницу. Для проверки, наверное, лучше что-то типа такого:

PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
$my_url        = 'https://www.cyberforum.ru'
$HTTP_Request  = [System.Net.WebRequest]::Create($my_url)
try   { $HTTP_Response = $HTTP_Request.GetResponse() }
catch { $HTTP_Response = $null }
$HTTP_Status   = [int]$HTTP_Response.StatusCode
 
if($HTTP_Status -eq 200) 
  { 
    Write-Host "Сайт = OK!" 
  } 
 else 
  { Write-Host "Сайт не доступен..." }
if($HTTP_Response -ne $null) { $HTTP_Response.Close() }
Идея заключается:попадаются каналы с разными названиями , но одинаковыми ссылками нужно чтобы удалялись каналы дублирующиеся именно по ссылками, .
Как можно реализовать?

Хочу еще добавить ,чтобы можно было добавлять ссылки .
Составить алгоритм и затем - реализовать его в виде кода. Вроде, так все делают, не ?.. )))
0
0 / 0 / 0
Регистрация: 06.08.2018
Сообщений: 59
09.02.2020, 18:02  [ТС] 28
Цитата Сообщение от AAT666 Посмотреть сообщение
PowerShell
$new_urls_input = @()
gc "F:\IPTV\Svalka\URLS_Input.txt" | ?{ (iwr $_ -UseBasicParsing).statuscode -eq 200 } | %{ $new_urls_input += $_}
но Invoke-WebRequest загружает всю страницу. Для проверки, наверное, лучше что-то типа такого:
Работает хорошо ,вижу что проверяются ссылки

Но сделал вывод ,а он не работает , файл создается, но данных нету
PowerShell
1
2
$new_urls_input = @()
gc "F:\IPTV\Svalka\URLS_Input.txt" | ?{ (iwr $_ -UseBasicParsing).statuscode -eq 200 } | %{ $new_urls_input += $_} | Out-File F:\IPTV\Svalka\URLS_good.txt -Append
Цитата Сообщение от AAT666 Посмотреть сообщение
Составить алгоритм и затем - реализовать его в виде кода. Вроде, так все делают, не ?.. )))
Сейчас попробую набросать как должно быть.

Добавлено через 10 минут
Пока идей вообще нету про алгоритм(
0
210 / 59 / 26
Регистрация: 16.06.2016
Сообщений: 193
10.02.2020, 15:59 29
Цитата Сообщение от Siomsolyu Посмотреть сообщение
Но сделал вывод ,а он не работает , файл создается, но данных нету
Потому что по конвейеру, после присвоения в массив, ничего не передается. Думал, что далее будет работа со списком "живых" сайтов. Если просто проверить и записать, то так пробуем

PowerShell
1
gc "F:\IPTV\Svalka\URLS_Input.txt" | ?{ (iwr $_ -UseBasicParsing).statuscode -eq 200 } | Out-File F:\IPTV\Svalka\URLS_good.txt -Append
1
0 / 0 / 0
Регистрация: 06.08.2018
Сообщений: 59
11.02.2020, 16:15  [ТС] 30
Цитата Сообщение от AAT666 Посмотреть сообщение
gc "F:\IPTV\Svalka\URLS_Input.txt" | ?{ (iwr $_ -UseBasicParsing).statuscode -eq 200 } | Out-File F:\IPTV\Svalka\URLS_good.txt -Append
Отлично работает только убрал ,а то постоянно дописывается

Можете ли помощь в задумке по
Цитата Сообщение от Siomsolyu Посмотреть сообщение
Есть задумка ,иногда попадаются каналы которые по подписке на определенном ip или адресе.
Хочется удалять такие адреса вообще из обработки,чтобы не затрачивать время в последующей обработке.
Я знаю,что удалять адреса прям из файла невозможно , но можно написать скрипт,чтобы находило и разбивало на разные файлы где есть нужная пара строк,а где нету .
Пример(не обращайте внимание на group-title они добавляются в конце всего пути обработки) :
Ненужный канал
PowerShell
1
2
#EXTINF:-1 group-title="Познавательные",Fine living HD
http://myott.tv/stream/E4NBLH19Y5/273.m3u8
Нужный канал .

PowerShell
1
2
#EXTINF:111 group-title="Прочие каналы:",Fine Living HD
http://5.61.48.23/42/4e183238083d8e9e3e56f5f24145dc0464bfd608/111/stream.m3u8
Нашел на просторах интернета код ,он разбивает по критериям где есть строка hd или нету
Как реализовать если нужно перемещать по паре строк ?
И если критерий для отбора находится во второй строке пары?
PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
# Get the contents of the file.
$file = get-content ~\file.xml
 
# Loop through the xml file adding all "HD" tags to one file and all non "HD" tags to another file
foreach($text in $file)
{
    if($text.Contains("HD")) {
        Add-Content ~\hd.txt $text
    } 
    else {
        Add-Content ~\nohd.txt $text
    }
}
Есть у меня код ,который,написал Uragan66, код перемещает но не разбивает на файлы
PowerShell
1
2
3
4
5
6
7
8
9
#6)Перенос фильмов в новый плейлист Films_From_TV1.m3u
$group = 'https://hls.kinoplayer.co/|https://bk2-hls.kinoplayer.co/hls/'
$file = New-TemporaryFile
 
Get-Content F:\IPTV\4_Obyedinenie\TV\T_BL_ng.m3u -Encoding utf8 | Select-String -Pattern $group -Context 1,0 `
| ForEach {($_ -replace '>').Trim()} | Sort-Object -Unique | Set-Content $file.FullName -Encoding utf8
Get-Content $file.FullName | ForEach {$_.Trim()} | Set-Content F:\IPTV\3_V_sbore\Films_Serials\Films_From_TV.m3u -Encoding utf8
 
Remove-Item $file.FullName -errorAction silentlycontinue
Добавлено через 43 секунды
Решил склеить 2 скрипта вышло такое
PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$group = 'https://hls.kinoplayer.co/|https://bk2-hls.kinoplayer.co/hls/'
$file = New-TemporaryFile
 
Get-Content F:\IPTV\TEST\TV_Release.m3u -Encoding utf8 | Select-String -Pattern $group -Context 1,0 `
| foreach($text in $file)
{
    if($text.Contains($group)) {
        Add-Content F:\IPTV\TEST\good.txt $text
    } 
    else {
        Add-Content F:\IPTV\TEST\nogood.txt $text
    }
}
НО чуда не произошло )
0
1329 / 489 / 137
Регистрация: 20.02.2019
Сообщений: 2,451
Записей в блоге: 42
12.02.2020, 07:58 31
Siomsolyu, вы нарушаете принцип "от простого к сложному" к примеру довольно трудно найти объём купола, не понимая теоремы Пифагора, я не люблю мешать чужим мучениям, если они доставляют радость... но все же рекомендую сделать два шага назад...

Добавлено через 2 минуты
Цитата Сообщение от Siomsolyu Посмотреть сообщение
НО чуда не произошло )
а чудеса в этом мире я видел только рукотворные
0
210 / 59 / 26
Регистрация: 16.06.2016
Сообщений: 193
12.02.2020, 08:46 32
Цитата Сообщение от Siomsolyu Посмотреть сообщение
НО чуда не произошло )
Да, как-то странно ждать чуда от этого... Разберем, что Вы тут склеили ? Ибо четкого алгоритма задачи так и нет.

PowerShell
1
$group = 'https://hls.kinoplayer.co/|https://bk2-hls.kinoplayer.co/hls/'
Здесь $group присвоено строковое значение, которое может использоваться как шаблон для регулярных выражений.

PowerShell
1
$file = New-TemporaryFile
Данным командлетом создается временный файл в своем профиле (его, кстати, по-хорошему надо удалять в конце). Он, естественно, первоначально пустой. Полный путь к этому файлу можно получить вызвав свойство объекта -> $file.FullName

Далее, идет конвейер (pipeline).

Вначале конвейера мы получаем содержимое файла по указанному пути
PowerShell
1
Get-Content F:\IPTV\TEST\TV_Release.m3u -Encoding utf8
но не сразу скопом весь файл, а построчно - считалась строка и передалась дальше в конвейер, вот сюда:

PowerShell
1
Select-String -Pattern $group -Context 1,0
Командлет Select-String, по-умолчанию, примет переменную с конвейера (в данном случае, строку) и проверит на соответствие с заданным шаблоном $group. Если строка удовлетворяет шаблону, то она и следующая за ней строка (это задается ключом -Context: 0 - текущая, 1 - следующая за текущей) передаются далее в конвейер, то есть сюда:

PowerShell
1
foreach($text in $file)
Здесь скрипт должен взять, созданный вначале, пустой временный файл и, представив данную сущность как массив объектов, пробежаться по каждаму элементу этого массива. Но элемент всего один. Поэтому $text = $file. Далее идет цикл foreach, который сработает 1 раз.

Что происходит в цикле ? Используется оператор условной логики if, в котором определяется:

PowerShell
1
if($text.Contains($group))
...содержит ли переменная $text строку (как регулярку) $group. Мы уже знаем, что такое переменная $text и можем даже посмотреть что она содержит. Уверяю, там на 99,9999999999999% не будет строки $group.

Поэтому должен сработать else

PowerShell
1
2
3
    else {
        Add-Content F:\IPTV\TEST\nogood.txt $text
    }
...и записать в файл nogood.txt содержимое $text. Что-то типа такого:

Каталог: C:\Users\me\AppData\Local\Temp


Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 12.02.2020 10:08 0 tmpC6BD.tmp

Где ошибка в алгоритме (надеюсь, что он хоть какой-то, но есть) ?..
0
14 / 12 / 2
Регистрация: 27.03.2017
Сообщений: 105
12.02.2020, 10:59 33
Siomsolyu,
PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
     $group = '178.124.183.5|mfe.svc.ott.zala.by'
     @(for($i, $arr = 0, (Get-Content .\ipvdenmsru.m3u -Encoding utf8); $i -lt $arr.Length;) {
           $a, $b = $arr[$i], $arr[$i + 1]
           if ($a.StartsWith('#EXTINF') -and $b -match ':\/\/') {
              if ($b -notmatch $group) {
              "$a`n$b"
              
              $i += 2
              }
           else {
              ++$i
              continue
           }
           }
           else {
              ++$i
              continue
           }
       }) | Sort-Object -Unique | Out-File .\2ipvdenmsru.m3u
На выходе будут отсортированные каналы с ссылками, кроме указанных в переменной $group
1
0 / 0 / 0
Регистрация: 06.08.2018
Сообщений: 59
12.02.2020, 15:23  [ТС] 34
Uragan66, Спасибо , проверю.

Добавлено через 52 минуты
Uragan66, Скрипт работает отлично , но возникла заминка.

после обработки пропадает в начале #EXTM3U
Решил взять строчку из твоего скрипта по объединению , но оно не помогло .
PowerShell
1
2
$d = '#EXTM3U'
$group = 'http://www.......'
0
14 / 12 / 2
Регистрация: 27.03.2017
Сообщений: 105
12.02.2020, 15:55 35
Цитата Сообщение от Siomsolyu Посмотреть сообщение
после обработки пропадает в начале #EXTM3U
естественно будет пропадать, так как не вписывается в алгоритм кода...
PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
    $group = '178.124.183.5'
    $d = '#EXTM3U'
    $c =  @(for($i, $arr = 0, (Get-Content .\ipvdenmsru.m3u -Encoding utf8); $i -lt $arr.Length;) {
        $a, $b = $arr[$i], $arr[$i + 1]
        if ($a.StartsWith('#EXTINF') -and $b -match ':\/\/') {
            if ($b -notmatch $group) {
                "$a`n$b"
                
                $i += 2
            }
            else {
                ++$i
                continue
            }
        }
        else {
            ++$i
            continue
        }
    }) | Sort-Object -Unique
    Set-Content .\2ipvdenmsru.m3u -Value $d,$c
1
0 / 0 / 0
Регистрация: 06.08.2018
Сообщений: 59
12.02.2020, 16:07  [ТС] 36
Uragan66, Отлично работает)
Спасибо большое.
0
0 / 0 / 0
Регистрация: 06.08.2018
Сообщений: 59
16.02.2020, 19:52  [ТС] 37
Есть плейлист который содержит в себе дубликаты каналов
Пример
PowerShell
1
2
3
4
5
6
7
8
#EXTINF:0,Матильда1 (2017)
https://cdnmfw.tvzavr.ru/stream/tvzavr/3/29b70839-c862-4e0b-870d-7641b74de812/29b70839-c862-4e0b-870d-7641b74de812-audio_rus%3D317769-video%3D4998000.m3u8
#EXTINF:0,Матильда2 (2017)
https://cdnmfw.tvzavr.ru/stream/tvzavr/3/29b70839-c862-4e0b-870d-7641b74de812/29b70839-c862-4e0b-870d-7641b74de812-audio_rus%3D317769-video%3D4998000.m3u8
#EXTINF:0,Зоология1 (2016)
https://cdnmfw.tvzavr.ru/stream/tvzavr/3/38b0dd94-a6b5-48e9-aa66-0397e93c37fd/38b0dd94-a6b5-48e9-aa66-0397e93c37fd-audio_rus%3D317440-video%3D4997000.m3u8
#EXTINF:0,Зоология2 (2016)
https://cdnmfw.tvzavr.ru/stream/tvzavr/3/38b0dd94-a6b5-48e9-aa66-0397e93c37fd/38b0dd94-a6b5-48e9-aa66-0397e93c37fd-audio_rus%3D317440-video%3D4997000.m3u8
Как сделать, чтобы удаляло дублирующий канал по совпадению одинаковых строки (ссылки).
Что в итоге должно получится
PowerShell
1
2
3
4
#EXTINF:0,Матильда1 (2017)
https://cdnmfw.tvzavr.ru/stream/tvzavr/3/29b70839-c862-4e0b-870d-7641b74de812/29b70839-c862-4e0b-870d-7641b74de812-audio_rus%3D317769-video%3D4998000.m3u8
#EXTINF:0,Зоология1 (2016)
https://cdnmfw.tvzavr.ru/stream/tvzavr/3/38b0dd94-a6b5-48e9-aa66-0397e93c37fd/38b0dd94-a6b5-48e9-aa66-0397e93c37fd-audio_rus%3D317440-video%3D4997000.m3u8
0
1329 / 489 / 137
Регистрация: 20.02.2019
Сообщений: 2,451
Записей в блоге: 42
17.02.2020, 10:17 38
Без претензий на оптимальность

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
30
31
32
33
34
35
36
37
38
cls
$str = @'
#EXTINF:0,Матильда1 (2017)
https://cdnmfw.tvzavr.ru/stream/tvzavr/3/29b70839-c862-4e0b-870d-7641b74de812/29b70839-c862-4e0b-870d-7641b74de812-audio_rus%3D317769-video%3D4998000.m3u8
#EXTINF:0,Матильда2 (2017)
https://cdnmfw.tvzavr.ru/stream/tvzavr/3/29b70839-c862-4e0b-870d-7641b74de812/29b70839-c862-4e0b-870d-7641b74de812-audio_rus%3D317769-video%3D4998000.m3u8
#EXTINF:0,Зоология1 (2016)
https://cdnmfw.tvzavr.ru/stream/tvzavr/3/38b0dd94-a6b5-48e9-aa66-0397e93c37fd/38b0dd94-a6b5-48e9-aa66-0397e93c37fd-audio_rus%3D317440-video%3D4997000.m3u8
#EXTINF:0,Зоология2 (2016)
https://cdnmfw.tvzavr.ru/stream/tvzavr/3/38b0dd94-a6b5-48e9-aa66-0397e93c37fd/38b0dd94-a6b5-48e9-aa66-0397e93c37fd-audio_rus%3D317440-video%3D4997000.m3u8
'@ -split "`r`n" | ForEach-Object -Begin {$i = 0; $outHash = @{}} -Process {
    If ($i%2 -eq 0){
        $EXTINF = $_
    }
    else
    {
        $outHash.add(($outHash.Count), @{EXTINF = $EXTINF; 'link'=$_})
    }
    $i++
} 
 
$out= ''
for ($i = 0; $i -le $outHash.Count; $i++)
{
    $flag = $false
    for ($j = $i+1; $j -le $outHash.Count; $j++)
    {
        if ($outHash[$i].link -eq $outHash[$j].link){
 
            $flag = $true
        }
    }
    If ($flag -eq $false)
    {
        $out += "$($outHash[$i].EXTINF)`r`n$($outHash[$i].link)`r`n"
    }
}
$out
Добавлено через 33 секунды
Оставляет крайнее вхождение
0
0 / 0 / 0
Регистрация: 06.08.2018
Сообщений: 59
17.02.2020, 13:12  [ТС] 39
Цитата Сообщение от alhaos Посмотреть сообщение
Оставляет крайнее вхождение
Хорошо, спасибо.
Если вам не сложно можете доделать, чтобы данные брались из файла и записывались в выходной файл ?
0
1329 / 489 / 137
Регистрация: 20.02.2019
Сообщений: 2,451
Записей в блоге: 42
17.02.2020, 13:20 40
Цитата Сообщение от Siomsolyu Посмотреть сообщение
Если вам не сложно можете доделать
раздел 5.9 правил данного форума запрещает
0
17.02.2020, 13:20
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.02.2020, 13:20
Помогаю со студенческими работами здесь

Работа с папками в powershell
Возникла проблема, необходимо создавать папку по имени пользователя ($env:USERNAME) если она не...

Работа с таблицами Word средствами PowerShell
Доброго времени суток! Подскажите, где найти справочник по работе с таблицами средствами...

Импорт данных из Excell (csv) и работа с ними в PowerShell
Здравствуйте! Являюсь совсем новичком в PowerShell, пролазив все форумы не нашла как сделать...

Работа в PowerShell (скопировать файл из одного места в другое)
Здравствуйте! Начали работать в PowerShell, преподаватель задал выполнить следующее: В...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru