Форум программистов, компьютерный форум, киберфорум
PowerShell
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.88/25: Рейтинг темы: голосов - 25, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 30.05.2017
Сообщений: 11

Разработать командлет для нахождения минимального и максимального значения чисел, хранящихся в файле

10.02.2018, 19:59. Показов 5689. Ответов 41
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, требуется помощь с задачами, которые нужно выполнить в PowerShell

Разработать командлет для нахождения минимального и максимального значения чисел, хранящихся в файле nn.txt

Заранее большое спасибо, за помощь.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.02.2018, 19:59
Ответы с готовыми решениями:

Создать dll для нахождения минимального и максимального значения из чисел
помогите пожалуйста создать dll для нахождения минимального и максимального значения из чисел, которые введены в stringgrid. если...

Написать функцию для нахождения максимального и минимального значения из двух чисел
Написать функцию для нахождения максимального и минимального значения из двух чисел, полученных в качестве аргументов. Составить программу,...

Разработать программу для нахождения максимального и минимального элементов действительной матрицы
Разработать программу для нахождения максимального и минимального элементов действительной матрицы размерности NxN (2 ≤ N ≤ 15)...

41
507 / 160 / 49
Регистрация: 27.02.2016
Сообщений: 829
11.02.2018, 02:39
```
ttsroojecb-
```
?
0
Любознательный
 Аватар для YuS_2
7405 / 2255 / 360
Регистрация: 10.03.2016
Сообщений: 5,216
11.02.2018, 09:02
Цитата Сообщение от VadimAlekseev Посмотреть сообщение
Разработать командлет
Вы уверены, что необходимо разработать именно командлет?

Цитата Сообщение от VadimAlekseev Посмотреть сообщение
нахождения минимального и максимального значения чисел, хранящихся в файле nn.txt
PowerShell
1
[double[]]((gc nn.txt) -match "\b[\d\.]+\b")|measure -min -max
0
Покинул форум
3700 / 1483 / 355
Регистрация: 07.05.2015
Сообщений: 2,903
11.02.2018, 22:15
YuS_2, многие путают командлет с функцией имеющий вид командлета, так что ничего удивительного. А вот что касается нахождения чисел в файле, верно подметили относительно чисел с плавающей точкой. Только лучше, пожалуй, было бы сделать так (PSv5):
PowerShell
1
(sls '\b[\d\.]+\b' file.ext).Matches.Value|measure -ma -mi
0
Любознательный
 Аватар для YuS_2
7405 / 2255 / 360
Регистрация: 10.03.2016
Сообщений: 5,216
12.02.2018, 09:06
Цитата Сообщение от greg zakharov Посмотреть сообщение
Только лучше, пожалуй, было бы сделать так
Да, возможно... это было, что первое в голову пришло и наверняка есть более оптимальные варианты.

Возможно, это следствия ожога на молоке... теперь приходится дуть на воду
Безотносительно данного примера: ранее не обращал внимания, как работает split в powershell...
Например такая конструкция:
PowerShell
1
("abc def ; ghi ; cba fed").split(" ; ")
в PS Core ведет себя, как и предполагается, а вот в более ранних версиях, почему-то совсем не так, т.е. на выходе получим:
Code
1
2
3
4
5
6
7
8
9
abc
def
 
 
ghi
 
 
cba
fed
вместо:
Code
1
2
3
abc def
ghi
cba fed
а вот такая конструкция:
PowerShell
1
("abc def ; ghi ; cba fed") -split " ; "
уже работает в любой версии ожидаемо... вот и приходится иногда соломку стелить там, где и падать не придется
0
 Аватар для KDE777
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
12.02.2018, 10:15
Цитата Сообщение от VadimAlekseev Посмотреть сообщение
Разработать командлет для нахождения минимального и максимального значения чисел, хранящихся в файле nn.txt
А можно подробней о формате этого текста?

greg zakharov, YuS_2,

PowerShell
1
2
3
4
$str = 'С IP 192.168.1.1 пришло 1 500 пакетов, а затем 500.'
 
($str | sls '\b[\d\.]+\b').Matches.Value
[double[]]($str -match "\b[\d\.]+\b")
Code
1
2
192.168.1.1
1
0
Покинул форум
3700 / 1483 / 355
Регистрация: 07.05.2015
Сообщений: 2,903
12.02.2018, 11:51
KDE777, встречный вопрос как обладателю множества дипломов, PSv2 (альяс sls задан мануально):
Code
1
2
3
4
PS D:\> $str = 'С IP 192.168.1.1 пришло 1 500 пакетов, а затем 500.'
PS D:\> $str | sls '\b[\d\.]+\b' | % {foreach ($m in $_.Matches) {$m.Value}}
192.168.1.1
PS D:\>
Разумеется множество нюансов не учтено, как, например, разность культур (в записях чисел), ровно как эти нюансы не были оговорены (скажем, стоит ли захватывать числа со знаком).
0
 Аватар для KDE777
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
12.02.2018, 11:54
Цитата Сообщение от greg zakharov Посмотреть сообщение
PSv2 (sls задан мануально)
Code
1
2
3
4
5
6
7
8
9
10
11
PS C:\> $PSVersionTable.PSVersion
 
Major  Minor  Build  Revision
-----  -----  -----  --------
5      1      14409  1012
 
 
PS C:\> $str = 'С IP 192.168.1.1 пришло 1 500 пакетов, а затем 500.'
PS C:\> ($str | sls '\b[\d\.]+\b').Matches.Value
192.168.1.1
PS C:\>
Задание звучало "нахождение минимального и максимального значения чисел, хранящихся в файле nn.txt". Я привёл пример текста, в котором ваш пример находит только "192.168.1.1", а пример YuS_2 - "1".

Если вам это не интересно, можете просто не обращать внимание на мой комментарий.
0
Покинул форум
3700 / 1483 / 355
Регистрация: 07.05.2015
Сообщений: 2,903
12.02.2018, 11:55
KDE777, почитайте пост выше еще раз.
0
 Аватар для KDE777
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
12.02.2018, 11:59
Цитата Сообщение от greg zakharov Посмотреть сообщение
Разумеется множество нюансов не учтено, как, например, разность культур (в записях чисел), ровно как эти нюансы не были оговорены (скажем, стоит ли захватывать числа со знаком)
Естественно я понимаю про различные десятичные разделители, знаки и форматы разделения разрядов, поэтому и задал уточняющий вопрос автору темы (добавив наглядную иллюстрацию). Но отбросив все нюансы с региональными установками и знаками, ваш пример не нашёл даже "500" и "1".

Добавлено через 1 минуту

Не по теме:

Цитата Сообщение от greg zakharov Посмотреть сообщение
почитайте пост выше еще раз.
Ваше дополнение увидел уже после того, как отправил свой ответ.

0
Покинул форум
3700 / 1483 / 355
Регистрация: 07.05.2015
Сообщений: 2,903
12.02.2018, 12:12

Не по теме:

Что-то с форумом, уже пятый раз выкидывает за последние несколько минут.


Цитата Сообщение от KDE777
ваш пример не нашёл даже "500" и "1"
Не стоит искажать фактов. Пример не мой, это - лишь поправка к посту YuS_2, работа регулярки была лишь прикинута мысленно, без предварительных тестов. И если непременно нужна сатисфакция, то, как уже было написано выше, много нюансов не было изложено автором (а каков вопрос, таков, как правило, и ответ). Так что ежели желаете лишний раз блеснуть количеством своих дипломов написать идеологически правильную регулярку, то и флаг Вам в руки.
1
 Аватар для KDE777
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
12.02.2018, 12:29

Не по теме:

Цитата Сообщение от greg zakharov Посмотреть сообщение
И если непременно нужна сатисфакция
Вот опять вы начинаете... Уже устал повторять, что кроме технических деталей меня ничего не интересует. Комментируя примеры, никаких личных мотивов не преследую.



Цитата Сообщение от greg zakharov Посмотреть сообщение
Пример не мой, это - лишь поправка к посту YuS_2
Очевидно, что я это увидел. Поэтому тем более любопытно, как один и тот же паттерн, но в разных конструкциях выдал "1" или "192.168.1.1" и при этом совсем не то, что ожидалось.

Добавлено через 2 минуты
Цитата Сообщение от greg zakharov Посмотреть сообщение
Так что ежели желаете написать идеологически правильную регулярку, то и флаг Вам в руки.
Не желаю, потому что, как вы справедливо заметили "много нюансов не было изложено автором"
0
Покинул форум
3700 / 1483 / 355
Регистрация: 07.05.2015
Сообщений: 2,903
12.02.2018, 12:35
Цитата Сообщение от KDE777
...при этом совсем не то, что ожидалось.
Ну, Вы и сами понимаете, что они, регулярки, в PS отнюдь не из разряда Perl compatible. Даже иногда досада разбирает.
0
Любознательный
 Аватар для YuS_2
7405 / 2255 / 360
Регистрация: 10.03.2016
Сообщений: 5,216
12.02.2018, 12:38
Цитата Сообщение от KDE777 Посмотреть сообщение
Я привёл пример текста, в котором ваш пример находит только "192.168.1.1", а пример YuS_2 - "1"
Если беретесь приводить примеры, то и код используйте не собственного сочинения, а тот, который был показан.
Ваш "текст", в моем варианте кода, а не в Вашей интерпретации - не будет воспринят как число.

В общем, читайте условия. Предлагайте свои варианты и желательно без комментариев чужого кода - у Вас, что руки зудят или времени свободного много для экспериментов?
Займитесь работой, в конце концов, если заняться нечем.
0
 Аватар для KDE777
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
12.02.2018, 13:04
Цитата Сообщение от greg zakharov Посмотреть сообщение
Ну, Вы и сами понимаете, что они, регулярки, в PS отнюдь не из разряда Perl compatible. Даже иногда досада разбирает.
Вот только поэтому, я и написал пост #6 Неужели никому, кроме меня не интересны такие нюансы работы PS?

И тем более, как я уже писал, изначально предложенный пример, на моём образце совсем не соответствовал заданию (пусть хотя бы вывел 1 и 500)...

Например, не меняя паттерна:

PowerShell
1
([regex]::Matches($str,"\b[\d\.]+\b")).Groups.Value | measure -mi -ma
Code
1
2
3
4
5
6
Count    : 4
Average  : 
Sum      : 
Maximum  : 500
Minimum  : 1
Property :

Не по теме:

У меня только на продакшн-серверах в планировщиках ежедневно используется почти сотня PS-скриптов + ещё для хелпдеска написано два десятка. Поэтому, всё что связано с работой PS мне очень-очень интересно :)



Добавлено через 3 минуты
Цитата Сообщение от YuS_2 Посмотреть сообщение
Если беретесь приводить примеры, то и код используйте не собственного сочинения, а тот, который был показан.
Ваш "текст", в моем варианте кода, а не в Вашей интерпретации - не будет воспринят как число.
Ваш пример дословно

PowerShell
1
2
'С IP 192.168.1.1 сначало пришло 1 500 пакетов, а затем 500.' | sc nn.txt
[double[]]((gc nn.txt) -match "\b[\d\.]+\b")|measure -min -max
Code
1
2
3
4
5
6
Count    : 1
Average  : 
Sum      : 
Maximum  : 1
Minimum  : 1
Property :
Добавлено через 9 минут

Не по теме:

Цитата Сообщение от YuS_2 Посмотреть сообщение
Займитесь работой, в конце концов, если заняться нечем
Почти всю работу за меня делают PS-скрипты :)

0
Любознательный
 Аватар для YuS_2
7405 / 2255 / 360
Регистрация: 10.03.2016
Сообщений: 5,216
12.02.2018, 13:10
Цитата Сообщение от KDE777 Посмотреть сообщение
Почти всю работу за меня делают PS-скрипты
Вот! Это, правильно!

Цитата Сообщение от KDE777 Посмотреть сообщение
Поэтому, всё что связано с работой PS мне очень-очень интересно
Если с академической точки зрения, в смысле "интересно", то могу пояснить, как мне имхуется, что в Вашем варианте - единица, это совсем не единица, т.е. это не число, а "True".
0
 Аватар для KDE777
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
12.02.2018, 13:16
Цитата Сообщение от YuS_2 Посмотреть сообщение
Если с академической точки зрения, в смысле "интересно", то могу пояснить, как мне имхуется, что в Вашем варианте - единица, это совсем не единица, т.е. это не число, а "True".
А "500"?

Добавлено через 1 минуту
И кстати, только "1" ваш пример и находит Хотя, по вашему это и не число
0
Любознательный
 Аватар для YuS_2
7405 / 2255 / 360
Регистрация: 10.03.2016
Сообщений: 5,216
12.02.2018, 13:29
Цитата Сообщение от KDE777 Посмотреть сообщение
И кстати, только "1" ваш пример и находит Хотя, по вашему это и не число
Мой код, на Вашем тексте из одной строки (не массив строк, а одна строка), находит число и маякует, что 'ура!!!, мы нашли, что искали - "True", хозяин, "True"' , что в булевом значении может быть и "1"...
Хинт: добавьте в Ваш текст немного строк и всё увидите.
0
Покинул форум
3700 / 1483 / 355
Регистрация: 07.05.2015
Сообщений: 2,903
12.02.2018, 13:44
Цитата Сообщение от KDE777
...кроме меня не интересны такие нюансы работы PS?
Видите ли, разница между "нюансом" и "примером" достаточно велика, не говоря о том, как подаются эти "нюансы". Пример - то, от чего можно оттолкнуться, нюанс - то, что вскрывается по мере экспериментов; раскрытие нюансов в контексте одного примера - научный труд, нюанс вырванный из контекста - словоблудие.

Не по теме:

Цитата Сообщение от KDE777
Почти всю работу за меня делают PS-скрипты
Снова кич? На форуме есть ребята, использующих в повседневной работе самописных ботов и даже нейронки.

0
 Аватар для KDE777
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
12.02.2018, 14:12
Цитата Сообщение от YuS_2 Посмотреть сообщение
Мой код, на Вашем тексте из одной строки (не массив строк, а одна строка), находит число и маякует, что 'ура!!!, мы нашли, что искали - "True", хозяин, "True"' , что в булевом значении может быть и "1"...
Вот и отлично. Теперь вы разобрались, как работает ваш же пример

И из вашего же объяснения становится очевидным, что "| measure -min -max" в этом примере бессмысленно: -match будет всегда выдавать "True" или "False", [double[]] переводить их в "1" или "0", т.е. какие бы числа не были в строке у вас всегда будет Maximum = Minimum = 1 или 0

А вот то что ваш пример находит (если находит), сохраняется в $Matches

Добавлено через 23 минуты

Не по теме:

Цитата Сообщение от greg zakharov Посмотреть сообщение
не говоря о том, как подаются эти "нюансы"
Что вас не устраивает в максимально нейтральной подаче? Изначально был показан пример, который вовсе не находит никаких чисел...

Цитата Сообщение от greg zakharov Посмотреть сообщение
Снова кич?
Не знаю, что вы подразумеваете под этим словом. Для меня это "безвкусные" поделки, вроде различных статуэток в сервантах у бабушек.

Цитата Сообщение от greg zakharov Посмотреть сообщение
На форуме есть ребята, использующих в повседневной работе самописных ботов и даже нейронки.
Очень рад, что есть такие "ребята". В ветке про PS я объяснил причину своего интереса к PS. Зачем упоминать здесь другие технологии (хотя и мог бы, например neural network из SQL Server/Azure Analysis Services)? Написав, что у меня 90% работы автоматизировано через PS-скрипты, я ничего кроме этого не имел в виду. К чему здесь упоминание какого-то кича, мне не понятно...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.02.2018, 14:12
Помогаю со студенческими работами здесь

Математическая функция для которой нужно решить задачу нахождения максимального (минимального) значения
Математическая функция для которой нужно решить задачу нахождения максимального (минимального) значения ln(x) min{x,y} ...

Разработать метод для нахождения минимального из двух чисел
Разработать метод min (a,b) для нахождения минимального из двух чисел. Вычислить с помощью него минимальное значение из четырех чисел x , y...

Шаблонные функции для нахождения минимального и максимального элемента пары чисел
Описать функции-шаблоны для нахождения минимального и максимального элемента пары чисел. Задано два целых и два действительные числа....

разработать метод min(a,b) для нахождения минимального из двух чисел. Вычислить минимальное значение из четырех чисел x,
Здравствуйте, помогите правильно сослаться на метод по задаче Условие:разработать метод min(a,b) для нахождения минимального из двух...

Разработать функцию min(a,b) для нахождения минимального из двух чисел
Вычислить с помощью него минимальное значение из четырех x,y,z,v.


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru