Форум программистов, компьютерный форум, киберфорум
PowerShell
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.67/18: Рейтинг темы: голосов - 18, средняя оценка - 4.67
14 / 12 / 2
Регистрация: 27.03.2017
Сообщений: 105

Проверка состояния скачивания командлетом Invoke-WebRequest

27.12.2019, 18:49. Показов 4000. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток всем!
Написал небольшой скрипт для получения инфы о онлайн видеопотоках:
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
Add-Type -AssemblyName System.Windows.Forms
Add-Type -AssemblyName System.Drawing
 
$form = New-Object System.Windows.Forms.Form
$form.Text = 'Status Server'
$form.Size = New-Object System.Drawing.Size(350,500)
$form.BackColor = "0x7AC5E7"
$form.Opacity = 0.96
$form.FormBorderStyle = [System.Windows.Forms.FormBorderStyle]::SizableToolWindow
$form.StartPosition = 'CenterScreen'
 
$file = New-TemporaryFile
 
$eventHandler = [System.EventHandler]{
$textBox.Text
$listbox.Items.Add
$url = $textBox.Text
(Invoke-WebRequest -Uri $url).RawContent | Out-File $file.FullName
Get-Content $file.FullName | ForEach-Object {[Void]$listbox.Items.Add($_)}
 
}
 
$eventHandler2 = [System.EventHandler]{
start-process -filepath 'C:\Windows\System32\notepad.exe' -argumentlist $file.FullName
Start-Sleep -Milliseconds 300
$form.Close()
}
 
$eventHandler3 = [System.EventHandler]{
$listBox.Items.Clear()
$textBox.Clear()
Remove-Item $file.FullName -errorAction silentlycontinue
}
 
$OKButton = New-Object System.Windows.Forms.Button
$OKButton.Location = New-Object System.Drawing.Point(10,420)
$OKButton.Size = New-Object System.Drawing.Size(75,23)
$OKButton.Anchor = "Top, Right"
$OKButton.Text = 'OK'
$OKButton.Add_Click($eventHandler)
$form.Controls.Add($OKButton)
 
$LButton = New-Object System.Windows.Forms.Button
$LButton.Location = New-Object System.Drawing.Point(170,420)
$LButton.Size = New-Object System.Drawing.Size(75,23)
$LButton.Anchor = "Top, Right"
$LButton.Text = 'Clear'
$LButton.Add_Click($eventHandler3)
$form.Controls.Add($LButton)
 
$NButton = New-Object System.Windows.Forms.Button
$NButton.Location = New-Object System.Drawing.Point(250,420)
$NButton.Size = New-Object System.Drawing.Size(75,23)
$NButton.Anchor = "Top, Right"
$NButton.Text = 'Notepad'
$NButton.Add_Click($eventHandler2)
$form.Controls.Add($NButton)
 
$CancelButton = New-Object System.Windows.Forms.Button
$CancelButton.Location = New-Object System.Drawing.Point(90,420)
$CancelButton.Size = New-Object System.Drawing.Size(75,23)
$CancelButton.Anchor = "Top, Right"
$CancelButton.Text = 'Cancel'
$CancelButton.Add_click({$form.close()})
$form.Controls.Add($CancelButton)
 
$label = New-Object System.Windows.Forms.Label
$label.Location = New-Object System.Drawing.Point(10,20)
$label.Size = New-Object System.Drawing.Size(280,20)
$label.Text = 'Вставьте ссылку:'
$form.Controls.Add($label)
 
$textBox = New-Object "System.Windows.Forms.TextBox"
$textBox.Location = New-Object System.Drawing.Point(10,40)
$textBox.Size = New-Object System.Drawing.Size(315,20)
$textBox.Anchor = 'Top, Left, Right'
$textBox.width = 315;
$form.Controls.Add($textBox)
 
$listbox = New-Object System.Windows.Forms.ListBox
$listbox.DisplayMember = $tmp.FullName
$listbox.Name = "listbox"
$listbox.Location = New-Object System.Drawing.Point(10,75)
$listbox.Size = New-Object System.Drawing.Size(315,330)
$listbox.Anchor = "Top, Bottom, Left, Right"
$listbox.Height = 330
 
$form.Controls.Add($listbox)
 
$form.Topmost = $true
 
$form.Add_Shown({$textBox.Select()})
$form.Add_Shown({$listbox.Select()})
$form.ShowDialog()
Remove-Item $file.FullName -errorAction silentlycontinue
Большинство серверов по запросу отдают нужную информацию, например по такой ссылке:
Code
1
http://185.78.112.18/AMCRussia/tracks-v1a2/mono.m3u8
Но бывают ссылки, к примеру udpxy:
Code
1
http://77.75.14.42:81/udp/239.195.0.10:1234
по которым скачивание будет идти бесконечно, так как начинает качаться не информация о потоке, а сам поток.
Куда Invoke-WebRequest качает его, непонятно, временный файл не увеличивается.
Подскажите, пожалуйста, как можно проверить состояние скачивания Invoke-WebRequest и прервать его при скачивании потока ?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.12.2019, 18:49
Ответы с готовыми решениями:

Не выполняется запуск программы на удалённом компьютере командлетом Invoke-Command
Уважаемые форумчане. Прошу знающих Powershell помочь в такой проблеме. Есть доменная сеть с компьютерами. Все компьютеры находятся в одном...

Invoke-WebRequest fields
Для доступа к определенным разделам требуется авторизация. Как я почитал, первым делом мне нужно попасть в формы. И сразу же наткнулся...

Элементарный парсинг Invoke-WebRequest
Доброе утро! Вновь обращаюсь к знатокам. В прошлый раз помогли успешно решить автоматизацию рабочего процесса работы с SSH. Теперь...

20
14 / 12 / 2
Регистрация: 27.03.2017
Сообщений: 105
30.12.2019, 11:58  [ТС]
Студворк — интернет-сервис помощи студентам
skouzmine, спасибо за обстоятельный ответ.
именно это я и хотел услышать в начале беседы, возможно ли решение задачи средствами Posh.
Значит придётся искать другой путь. Или же:
Цитата Сообщение от skouzmine Посмотреть сообщение
правильный и простой к тому же способ отличить хорошие адреса от пложих - по заголовкам ответа с сервера - только начинать скачивать то что будет страницей
так то я давно сделал и даже добавил ещё одну кнопку для повторного запроса по "нормальным" линкам, но уже с методом GET.
Но всё равно это немного не то. Хотелось бы ограничиться одним запросом.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.12.2019, 11:58

Invoke-WebRequest через прокси
Как выполнить запрос Invoke-WebRequest через прокси?

Invoke-webrequest и заполнение форм на сайте
Добрый день. Задался я целью написать скрипт, который будет по серийнику ноутбука НР выдавать мне срок его гарантии, взятый с...

Парсинг сайта с использованием Invoke-WebRequest
Ребят помогите спарсить инфу с сайта и записать в файл файл в формате: $innlist=2721060592 $web=Invoke-WebRequest...

Авторизация на форуме посредством Invoke-WebRequest
Добрый день всем! Никак не получается авторизоваться на форму через командлет Invoke-WebRequest. В скрипте прописываю: $rs =...

Invoke-WebRequest скачивает страницу без контента
Добрый день всем! Прошу помощи в решении такого вопроса: Писал парсер для одного сайта. Для вытаскивания нужного содержимого...


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

Или воспользуйтесь поиском по форуму:
21
Ответ Создать тему
Новые блоги и статьи
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
rest api anylogic - выполнение модели на своём русском сайте
anaschu 02.07.2026
Как подружиться с AnyLogic Cloud API, победить провайдеров и развернуться Java-бэкенд в Docker на бесплатном хостинге: Двухдневный лог борьбы Всем привет! Хочу поделиться свежим (и довольно. . .
Где деньги лежат
kumehtar 02.07.2026
Это - японская подводная лодка I-52 (тип C2, кодовое имя Momi) вышла из Японии в марте 1944 года с миссией в оккупированную немцами Францию (Лорьян). Это была одна из «Янаги»-миссий по обмену. . .
Krabik для WoW 3.3.5a, многоязычный
AmbA 02.07.2026
Допилил бота, думаю что окончательно. Изменения: - добавлена многоязычность - добавлено снятие скриншотов - добавлено поддержание бафов хождения по воде (для жреца, дк и шамана) - и так, по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru