Форум программистов, компьютерный форум, киберфорум
PowerShell
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 Аватар для volodin661
6677 / 2270 / 346
Регистрация: 10.12.2013
Сообщений: 7,839

Помню, был такой оператор <БАБУШКА НАДВОЕ СКАЗАЛА>. Или мне только кажется ?

03.05.2025, 18:13. Показов 2034. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
компактный,
и выглядел как-то так:

PowerShell
1
$положительные, $всеостальные = (1, 0, 3, -10, 5, 0, 4, -6, -8) -gt 0

есть group-object { $_ -gt 0 }, но с ним много лишних последующих телоизвиваний.
НО. Но зато есть киллер-фича - "список из лямбд": group-object { $_ -gt 0 }, { $_ -eq 0 }, { $_ -eq 5 }
Три лямбды дал, 4 группы вернёт ( три + остаток ). Это круто.
Есть опция -Noelements, но нету обратной опции -OnlyElements. Была бы, тогда вопрос закрыт.

Добавлено через 3 часа 51 минуту
Заинтересовался.
Соответственно тема слегка видоизменилась.

Задача:
Задана последовательность чисел 1, 0, 3, -1, 4, -6, -7, 45, 98, -50
Которую надо разбить по группам:
A) Отрицательные числа
B) Положительные числа
C) Числа равные 0
D) Числа больше 50,
используя cmdlet Group-Object.

PowerShell
1
1, 0, 3, -1, 4, -6, -7, 45, 98, -50 | Group-Object { $_ -lt 0 } , { $_ -0 }, { $_ -eq 0 }, { $_ -gt 50 }
Как оказалось, Group-Object, движимый категориями общечеловеческой справедливости,
благородно раздаёт всем сёстрам по серьгам, стараясь не обидеть ни одну из возвращаемых групп;
я намеренно вставил во второе условие -ge 0, a не -gt 0, предполагая, что число 0 окажется во второй группе, а в третьей не окажется ничего,
но нет, не отдал он 0 во вторую группу и, соответственно, облагодетельствовал третью
Output:
Code
1
2
3
4
5
6
Count Name                      Group
----- ----                      -----
    4 False, True, False, False {1, 3, 4, 45}
    1 False, True, False, True  {98}
    1 False, True, True, False  {0}
    4 True, False, False, False {-1, -6, -7, -50}
И вот здесь начинается трэш и хоррор. Обратите внимание на порядок возврата значений.
Группы вернулись не в порядке заданных условий A, B, C, D,
группы вернулись в порядке, определяемым значением свойства 'Name'.
Я эту услугу не заказывал.
Я вот так хотел:
PowerShell
1
2
3
$A, $B, $C, $D = { $_ -lt 0 } , { $_ -ge 0 }, { $_ -eq 0 }, { $_ -gt 50 }
 
$groupA, $groupB, $groupC, $groupD = 1, 0, 3, -1, 4, -6, -7, 45, 98, -50 | Group-Object $A, $B, $C, $D
Придётся заводить Issue.

Добавлено через 40 минут
Продолжаем разговор.

У Group-Object есть опции -AsHash и -AsString, чтобы вернуть результат в виде хэша, где ключами будут значения
свойства Name, приведённые к строке, а значением ключа будет содержимое соответств. группы.

Так может не всё так запущено в этой шарашке,- мелькнула шальная надежда,- может сейчас я отдам функцию вместо скриптблока, у функции, ведь, есть имя, этим она от скриптблока и отличается, и рукожопые эти возьмут и будут использовать это имя в качестве ключа в возвращаемом хэше?

PowerShell
1
2
3
4
filter positiveElements { $_ -gt 0 }
filter negativeElements { $_ -lt 0 }
filter nullElements     { $_ -eq 0 }
$result = -1, 0, +1, +5, 0, -3, -2 | group positiveElements, negativeElements, nullElements -AsHashTable -AsString
и в $result.nullElements будут лежать нули, в $result.negativeElements отрицательные числа, а в
$result.positiveElements положительные.
Красота же.

Но, как можно догадаться, результат оказался чрезвычайно мелким и очень мягким по констистенции.
3
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.05.2025, 18:13
Ответы с готовыми решениями:

Windows 2008 планировщик запускает задание только для "запустить только для зарегистрированного пользователя"
Вообщем ситуацию уже объяснил в названии темы, когда ставлю &quot;запускать вне зависимости от...

Как из двух файлов открывать только выбранный и перемещённый или только оставшийся?
Как в коде bat файла написать, чтобы открывался файл 03.txt или 04.txt (в зависимости от того,...

Вывести на экран файлы, имена которых содержат только русские или только английские символы
Подскажите пожалуйста, как в командной строке вывести на экран файлы содержащие только русские...

8
2802 / 500 / 120
Регистрация: 26.09.2020
Сообщений: 945
Записей в блоге: 5
03.05.2025, 21:36
Две группы только
PowerShell
1
2
3
4
5
. {
    $Q = { $_ -lt 0 ? 'Отрицательные числа' : $_ -ge 0 ? 'Положительные числа' : $_ -eq 0 ? 'Числа равные 0' : $_ -gt 50 ? 'Числа больше 50' : 'Остальные' }
    $grouped = 1, 0, 3, -1, 4, -6, -7, 45, 98, -50 | Group-Object $Q
    $grouped
}
1
 Аватар для volodin661
6677 / 2270 / 346
Регистрация: 10.12.2013
Сообщений: 7,839
05.05.2025, 12:40  [ТС]
Цитата Сообщение от volodin661 Посмотреть сообщение
Помню, был такой оператор <БАБУШКА НАДВОЕ СКАЗАЛА>
ВОТ ОН:
( не оператор, а фича у метода Where )

PowerShell
1
$positive, $other = (1, 0, 3, -1, 4, -6, -7, 45, 98, -50).Where({$_ -gt 0}, 'SPLIT')
1
1658 / 273 / 66
Регистрация: 03.06.2020
Сообщений: 689
05.05.2025, 18:33
Не так просто эту фичу найти.

Code
1
2
3
$ (1,2,3).where()
 
MethodException: Cannot find an overload for ".Where({ expression } [, mode [, numberToReturn]])" and the argument count: "0".
Вместо литеральног 'SPLIT', можно использовать порядковый номер 5

PowerShell
1
[enum]::GetValues([System.Management.Automation.WhereOperatorSelectionMode])
1
Любознательный
 Аватар для YuS_2
7404 / 2254 / 360
Регистрация: 10.03.2016
Сообщений: 5,214
05.05.2025, 20:54
Цитата Сообщение от lesser Посмотреть сообщение
Не так просто эту фичу найти.
чойта?
Смотрим about_Methods
Находим там упоминание:
упоминание
И проваливаемся по ссылке:
ссылка

- не сложно, вроде бы...
0
1658 / 273 / 66
Регистрация: 03.06.2020
Сообщений: 689
05.05.2025, 22:34
Цитата Сообщение от YuS_2 Посмотреть сообщение
Смотрим about_Methods
Я так и сделал Get-Help about_Methods, но не обратил внимание на отсылку к about_arrays

Code
1
2
3
4
5
6
7
ForEach and Where methods
 
Beginning in PowerShell 4.0, collection filtering using a method syntax is
supported. This allows use of two new methods when dealing with collections
ForEach and Where.
 
You can read more about these methods in about_arrays
Во всем виновата монохромная справка )) Могли бы что-то придумать в другом формате. Большинство терминалов уже позволяют гиперссылки. Хотя бы подсвечивали текст.
0
Любознательный
 Аватар для YuS_2
7404 / 2254 / 360
Регистрация: 10.03.2016
Сообщений: 5,214
06.05.2025, 09:15
Цитата Сообщение от lesser Посмотреть сообщение
Могли бы что-то придумать в другом формате. Большинство терминалов уже позволяют гиперссылки.
Дык, поддержка-то есть... оформления нет. Видимо, работает остаточный принцип. Встроенный хелп нафиг никому не сдался, в смысле разработчикам, а пользователи - перебьются и это не говоря уже о переводах той самой справки... забыто и забито, причем уже давно. Такой весомый расчет на посещение онлайн справки.
0
2802 / 500 / 120
Регистрация: 26.09.2020
Сообщений: 945
Записей в блоге: 5
06.05.2025, 19:59
Цитата Сообщение от iNNOKENTIY21 Посмотреть сообщение
Две группы только
Сам не понял. Хотел изобразить, что то, типа этого (pwsh 7+):
PowerShell
1
2
(1, 0, 3, -1, 4, -6, -7, 45, 98, -50, 0, 10, 9) |
    group { $_ -eq 0 ? 'Zero' : $_ -gt 0 ? 'Больше нуля' : $_ -lt 0 ? 'Меньше нуля' : '1' }
0
 Аватар для volodin661
6677 / 2270 / 346
Регистрация: 10.12.2013
Сообщений: 7,839
09.05.2025, 14:10  [ТС]
сильно не хватат 'расширенных логических опций' в командлетах типа: Копать-Яму -ОтЗабора -ДоОбеда

Копать-Яму -ОтЗабора -plus -ДоОбеда ( метры, прорытые от забора, складываются с метрами которые пришлись на время до обеда )
Копать-Яму -ОтЗабора -intersect -ДоОбеда ( обычное поведение опций. только те метры, которые от забора и за время до обеда)
Копать-Яму -ОтЗабора -minus -ДоОбеда ( от забора, но только те метры, которые пришлись на после обеда )
Копать-Яму -ОтЗабора -symmetricdifference -ДоОбеда ( то есть, не от забора и после обеда )
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.05.2025, 14:10
Помогаю со студенческими работами здесь

Как вывести только четные или только нечетные строки?
Привествую ! Допустим имеется программа, которая выводит вот такой условный текст в консоль ...

Автозагрузка 2 батников расшаренных папок, грузит только одну, приходится только вручную
chcp 1251 net use &quot;\\10.30.60.30&quot; /delete /Y net use s: /delete /Y net use s: &quot;\\10.30.60.30&quot;...

Как сделать так, чтобы при выполнении команды PING в файл записывалась только статистика?
Как сделать так, что бы выполнении команды: ping ya.ru -n 10 в файл записывалось только статистика?...

Как настроить Windows 7 так, чтобы в сетевом окружении отображались только компьютеры рабочей группы?
Здравствуйте, подскажите, пожалуйста, как настроить Windows 7, так чтобы в сетевом окружении...

Есть ли такая встроенная команда, которая бы выводила только IP-адрес?
Привет. ipconfig выводит много лишнего. А хочется только ip. Есть ли такая встроенная команда?


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru