С Новым годом! Форум программистов, компьютерный форум, киберфорум
PowerShell
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
 Аватар для volodin661
6671 / 2264 / 346
Регистрация: 10.12.2013
Сообщений: 7,830

Как создать функцию с задорным именем?

16.04.2024, 23:59. Показов 1428. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
я таки нашёл, как это сделать.

вот так выглядит ссылка на скриптблок, тут и искать не надо:

PowerShell
1
2
${шла саша по шоссе и сосала сушку (o)} = { "тело функции" }
.${шла саша по шоссе и сосала сушку (o)}
Output:
тело функции

Но присвоить 'в лоб' подобное имя функции не удастся
PowerShell
1
function 'шла саша по шоссе и сосала сушку (o)' { "тело функции" }    # ошибка
Зато вот так ( через PSDrive провайдер) можно : !
PowerShell
1
2
${function:шла саша по шоссе и сосала сушку (o)} = { "тело функции: $args" }
. "шла саша по шоссе и сосала сушку (o)" 5
output:
тело функции: 5

Как это можно использовать в мирных целях ? - непонятно. прикольно, но баловство.
фильтр-функцию какую-нить можно оформить
PowerShell
1
2
3
${function:только гласные буквы} = {begin{}process{"each:$input"}end{}}
 
"А", "О", "Ю", "Я", "Щ", "Ж"  |& "только гласные буквы"
Само собой, поразвлекался с Юникодом
( на сайт в текст. виде грузить не стал, тут проблемы с юникодом. поэтому картинки )

содержимое файла:


исполнение:


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

Как создать функцию с именем файла в качестве переменной?
Прошу помочь. Есть файлы в каждом файле целые числа количество их не задано. Нужно создать функцию, выводящую на экран минимальное число из...

Подскажите, как создать функцию в JS, чтобы при наведение на определенный див выводился alert с именем объекта
Я создал человечка состоящего из дивов. Но я не могу настроить так, чтобы при наведение на руку прописывалось, что это рука. ...

Создать функцию с произвольным именем
Создать функцию с произвольным именем. В функции определить параметр, куда будет передаваться строка, содержащая фамилию, имя и ...

20
 Аватар для volodin661
6671 / 2264 / 346
Регистрация: 10.12.2013
Сообщений: 7,830
17.04.2024, 00:45  [ТС]
Кстати, не все знают, предполагаю,
что с PSDrive - провайдером есть
и другие фокусы.

вот такой синтаксис:
PowerShell
1
${c:/Users/Кузнецов/file.csv}
вернёт содержимое файла c:/Users/Кузнецов/file.csv

определив фильтр-функцию order-by-words-length(), можно
получить вот такую конструкцию, не нуждающуюся в доп. комментариях:

PowerShell
1
${c:/Users/Кузнецов/file.txt} | order-by-words-length | out-file sorted_file.txt
0
Любознательный
 Аватар для YuS_2
7404 / 2254 / 360
Регистрация: 10.03.2016
Сообщений: 5,213
17.04.2024, 09:55
Цитата Сообщение от volodin661 Посмотреть сообщение
Как это можно использовать в мирных целях ? - непонятно. прикольно, но баловство.
Это ведь ключевой момент в твоих экспериментах.

Цитата Сообщение от volodin661 Посмотреть сообщение
вот такой синтаксис:
PowerShellВыделить код
1
${c:/Users/Кузнецов/file.csv}
вернёт содержимое файла c:/Users/Кузнецов/file.csv
Дежавю... где-то уже было... в смысле, здесь же.
0
162 / 49 / 4
Регистрация: 03.06.2020
Сообщений: 554
22.04.2024, 07:10
Цитата Сообщение от volodin661 Посмотреть сообщение
содержимое файла:
за название скрипта ****.ps1 и главное его содержимое, будут благодарны или ломать голову о настроение все админы, которым останется это наследство. Конечно особый шарм будет вспоминать начальную школу с определением гласных и согласных букв.
Это без учета назначения скрипта.
Цитата Сообщение от volodin661 Посмотреть сообщение
вернёт содержимое файла c:/Users/Кузнецов/file.csv
если задать полный пусть.
аналог конструкции: type file.csv, если находиться в целевом каталоге
или :>type c:/Users/Кузнецов/file.csv
0
 Аватар для volodin661
6671 / 2264 / 346
Регистрация: 10.12.2013
Сообщений: 7,830
22.04.2024, 13:27  [ТС]
Цитата Сообщение от Segera Посмотреть сообщение
если задать полный пусть.
нет.

если есть двоеточие.
тогда вступает в дело соответствующий PSDrive провайдер и обеспечивает данное поведение.
0
 Аватар для volodin661
6671 / 2264 / 346
Регистрация: 10.12.2013
Сообщений: 7,830
14.05.2024, 01:19  [ТС]
Цитата Сообщение от volodin661 Посмотреть сообщение
Как это можно использовать в мирных целях ? - непонятно. прикольно, но баловство.
фильтр-функцию какую-нить можно оформить
В общем-то не такое уж и баловство.
Особенно после того, как наткнулся на возможности Set-Item

Итак, командлет Set-Item в сочетании с возможностями PSDrive (function:) - провайдера также способен задать произвольное имя функции и даже более того, он способен генерировать имена функций, поскольку поддерживает строковую интерполяцию переменных в отличие от синтаксиса ${function:some-crazy-name}.

Про генерацию будет ниже, а сейчас:
определение фильтр-функции
PowerShell
1
Set-Item -Path function:> -value {param($size) process{if($_.length -gt $size){$_}}}
и теперь можно так: ( список файлов весом более 100Мб )
PowerShell
1
dir |>100Mb
1
 Аватар для alhaos
1929 / 545 / 154
Регистрация: 20.02.2019
Сообщений: 2,663
Записей в блоге: 65
14.05.2024, 06:09
volodin661, Все отлично, опять к вопросу о персонализации среды, где хранить эти функции? в профиле? и таскать его с собой по всем машинам где нужен этот скрипт, добавлять в скрипт блок инициализации, ради красивого названия функции. А если на машине несколько хозяев и кто-то "умный" определил ">" как функцию, в общем профиле.

PowerShell
1
2
Set-Item -Path function:> -value { param($size) process { if ($_.length -lt $size) { $_ } } }
Get-ChildItem | > 100Mb | ForEach-Object > 1.txt
Не смущал бы ты неокрепшие умы...
0
Любознательный
 Аватар для YuS_2
7404 / 2254 / 360
Регистрация: 10.03.2016
Сообщений: 5,213
14.05.2024, 09:05
Цитата Сообщение от alhaos Посмотреть сообщение
опять к вопросу о персонализации среды, где хранить эти функции?
Ну, а как работают иные скриптовые языки? В частности, с модульным построением? Да, присутствуют постоянные жалобы на безопасников и прочие препоны (но там вообще, в принципе, жалуются на невозможность использования)... но это ведь организационный вопрос, всего лишь... само программирование к нему относится никак. Нужен функционал, пиши служебные записки с обоснованием о возможности введения доверенного репозитория или если нужен на "поиграться" - купи комп и играйся, а не нужен - вообще вопросов нет. Напиши модуль, подпиши его и выложи в доверенный репозиторий и применяй как душе угодно... в общем, если оглядываться на персонализацию, то и программированием лучше не заниматься - заказывай готовые продукты, сдавай на проверку безопасникам и со спокойной совестью применяй их. Имхо, конечно же.

Цитата Сообщение от alhaos Посмотреть сообщение
Не смущал бы ты неокрепшие умы...
Наоборот, пусть будет больше примеров, хороших и разных... чем их больше, тем больше вероятность более глубоко изучения возможностей языка... одной скупой документацией сыт не будешь.
0
 Аватар для alhaos
1929 / 545 / 154
Регистрация: 20.02.2019
Сообщений: 2,663
Записей в блоге: 65
14.05.2024, 10:37
YuS_2, Ну скрепя сердцем писал, халиварный конечно вопрос.
Цитата Сообщение от YuS_2 Посмотреть сообщение
в общем, если оглядываться на персонализацию, то и программированием лучше не заниматься - заказывай готовые продукты
ну а если подходить к скриптам как к готовому продукту. Пишешь ты скрипт а там все в персонализации, не по соглашениям, да и в обфускации, крайность конечно, но...

Добавлено через 12 минут
YuS_2, Взять вот тех же гоферов, которые не то, что конструкции пишут одинаково, все стараются придерживаются одного шаблона оформления структуры проекта, большинство IDE при сохранении файла, автоматически расставляет все переносы, подсвечивает предупреждением любые переменные оформленные не верблюжим стилем, капсить зазря априори не получится, так как капсом определяется область видимости переменной. Кошмар с точки зрения персонализации, зато читать любой писаный код на Го неимоверно приятно и прозрачно. Не всегда это зло.
0
Любознательный
 Аватар для YuS_2
7404 / 2254 / 360
Регистрация: 10.03.2016
Сообщений: 5,213
14.05.2024, 11:45
Цитата Сообщение от alhaos Посмотреть сообщение
Пишешь ты скрипт а там все в персонализации, не по соглашениям, да и в обфускации, крайность конечно, но...
Как говорил один мой товарищ, занимаясь починкой радиоэлектроники: "Что один человек построил, другой завсегда поломать сможет"

Цитата Сообщение от alhaos Посмотреть сообщение
все стараются придерживаются одного шаблона оформления структуры проекта
в том или ином виде, правила синтаксиса присутствует в любом языке...

Цитата Сообщение от alhaos Посмотреть сообщение
большинство IDE при сохранении файла, автоматически расставляет все переносы, подсвечивает предупреждением любые переменные оформленные не верблюжим стилем
и линтеры с подсветкой синтаксиса присущи не только для Go, так что не аргумент...

Цитата Сообщение от alhaos Посмотреть сообщение
зато читать любой писаный код на Го неимоверно приятно и прозрачно.
На самом деле, это всего лишь дело привычки и только. Любой непривычный синтаксис может показаться кошмаром... а со временем (если его изучишь и привыкнешь), будет всё с точностью до наоборот...
0
 Аватар для alhaos
1929 / 545 / 154
Регистрация: 20.02.2019
Сообщений: 2,663
Записей в блоге: 65
14.05.2024, 12:11
Цитата Сообщение от YuS_2 Посмотреть сообщение
На самом деле, это всего лишь дело привычки и только. Любой непривычный синтаксис может показаться кошмаром... а со временем (если его изучишь и привыкнешь), будет всё с точностью до наоборот...
Если взглянуть с этой точки зрения тут все наоборот, кто во что горазд, кто конвертерами, кто выражениями, кто в одну строчку все пытается завернуть, элементы конвейера те же кто как ...
0
Любознательный
 Аватар для YuS_2
7404 / 2254 / 360
Регистрация: 10.03.2016
Сообщений: 5,213
14.05.2024, 12:29
Цитата Сообщение от alhaos Посмотреть сообщение
тут все наоборот, кто во что горазд, кто конвертерами, кто выражениями, кто в одну строчку все пытается завернуть, элементы конвейера те же кто как
Включи строгий режим и попробуй тогда забалуй.
Просто powershell и задумывался в таком виде, чтобы справиться с ним могла даже "домохозяйка"... может и не любая, но и не профессионал...
А сравнивать надо сравнимое, в powershell нет дамоклова меча в виде компилятора, который обычно является естественным ограничителем полета фантазии программиста...
0
 Аватар для alhaos
1929 / 545 / 154
Регистрация: 20.02.2019
Сообщений: 2,663
Записей в блоге: 65
14.05.2024, 12:41
Цитата Сообщение от YuS_2 Посмотреть сообщение
Включи строгий режим и попробуй тогда забалуй.
да шо там того строгого режима...
При Set-StrictMode отключении PowerShell имеет следующее поведение:

Предполагается, что неинициализированные переменные имеют значение 0 (ноль) или $Nullв зависимости от типа
Ссылки на возвращаемые неисключаемые свойства $Null
Результаты неправильного синтаксиса функции зависят от условий ошибки
Попытка получить значение с помощью недопустимого индекса в массиве возвращается $Null
Цитата Сообщение от YuS_2 Посмотреть сообщение
Просто powershell и задумывался в таком виде, чтобы справиться с ним могла даже "домохозяйка"... может и не любая, но и не профессионал...
А вот volodin661 постоянно топит за то, что порог вхождения в PWSH чуть ли не сопоставим с нейрохирургией
0
 Аватар для volodin661
6671 / 2264 / 346
Регистрация: 10.12.2013
Сообщений: 7,830
14.05.2024, 14:38  [ТС]
разумным критерием будет мнение тех, кто только начинает ( ~ 30 человeко-мнений )

Добавлено через 32 минуты
Цитата Сообщение от alhaos Посмотреть сообщение
Все отлично, опять к вопросу о персонализации среды, где хранить эти функции? в профиле? и таскать его с собой по всем машинам где нужен этот скрипт, добавлять в скрипт блок инициализации, ради красивого названия функции. А если на машине несколько хозяев
всё это жутко смешно.
недуг называется «Виндус Головного Мозга».
у пользователей unix сразу появляется глумливая ухмылка, когда они слышат про такие 'проблемы'.

весь инструментарий ( ну 95% ), alhaos, делается исключительно и только для себя.

так же как топор на даче я точу для себя, и рубанок, и зубья пилы развожу точу для себя;
и тот факт, что на других участках пилят неделями тупой пилой то, что я делаю за час, меня совершенно не беспокоит.

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

Весь этот симулякр деятельности под названием Windows, со всеми этими, прости господи, Эктив Директори ( с больших, блять, букв ), вордами и экселями и прочей лабудой, не имеющей никакого отношения к интенсификации реального труда,
должен уйти, наконец, в небытие.

почитай в тырнетах, как все ржут, когда им рассказывают, что есть такой замечательный shell - powershell, но пользоваться им пользователю нельзя, потому что он запрещён 'политикой' (!).

такая трогательная гейц-забота o пользователях.
0
162 / 49 / 4
Регистрация: 03.06.2020
Сообщений: 554
14.05.2024, 15:19
Цитата Сообщение от volodin661 Посмотреть сообщение
всё это жутко смешно.
вот так неожиданно и наверное закономерно с необычной функции можно нырнуть в глобально-философский диспут тукс-форточки.
Для меня конечно неожиданно такое мнение от гуру-винды про линукс.
Ну ничего. Ещё лет пять +/- сколько-то ChatDPT *надцатый по версии или ещё какая-то ИИ-прогерная штучка всех уравняет по вопросам с какой стороны посмотреть, конвертации и даже странно выразиться кодовой таблице.
Как некогда уравнял полковник Кольт своими изделиями.
0
 Аватар для volodin661
6671 / 2264 / 346
Регистрация: 10.12.2013
Сообщений: 7,830
14.05.2024, 15:27  [ТС]
Цитата Сообщение от Segera Посмотреть сообщение
мнение от гуру-винды про линукс.
какая из меня гура ? не больше 10 лет жизни гейцу отдал, да и то в прошлом веке.
да и про линукс ни слова не сказал. если только не имеется в виду линукс как медийно-собирательный образ.
0
 Аватар для alhaos
1929 / 545 / 154
Регистрация: 20.02.2019
Сообщений: 2,663
Записей в блоге: 65
14.05.2024, 17:37
Цитата Сообщение от volodin661 Посмотреть сообщение
всё это жутко смешно.
посмейся, чё уж....

Цитата Сообщение от volodin661 Посмотреть сообщение
так же как топор на даче я точу для себя, и рубанок, и зубья пилы развожу точу для себя;
и тот факт, что на других участках пилят неделями тупой пилой то, что я делаю за час, меня совершенно не беспокоит.
Да точи ты, что и как хочешь, пока работаешь на своей даче, а если ты в бригаде и весь инструмент переточил под себя да так, что кроме тебя им никто нормально работать не может, вот это уже беда... я знаю много подобных "специалистов" которые могут "заточить" рабочий процесс исключительно под себя, искусственно сделав себя "исключительным" специалистом без которого тут ничего не работает, чаще всего это просто увеличение энтропии процесса, исключительно для того чтобы никто с ни больше не справился и заменить его не смог, с целью обезопасить свою жопу.

Для индивидуума это более чем имеет смысл, только не надо подобные паразитирующие действия выдавать как "bonum in se".
0
Любознательный
 Аватар для YuS_2
7404 / 2254 / 360
Регистрация: 10.03.2016
Сообщений: 5,213
14.05.2024, 18:39
Цитата Сообщение от alhaos Посмотреть сообщение
обезопасить свою жопу
безопасность своей жопы таки имеет значение, индивидуально для личности
Никто не будет озадачиваться безопасностью чужой... в самом широком смысле этого выражения.
Цитата Сообщение от alhaos Посмотреть сообщение
паразитирующие действия
празитирующие - это в случае использования чужого труда в личных целях, а если своего же труда и даже в личных целях - что тут паразитирующего?
Превалирование общественного над личным, осталось далеко в советском прошлом... не будем уже углубляться в вопрос "почему?", а то так придем к извечным вопросам "кто виноват?" и "что делать?", ответы на которые ищут постоянно... иногда это приводит к революции.
0
 Аватар для alhaos
1929 / 545 / 154
Регистрация: 20.02.2019
Сообщений: 2,663
Записей в блоге: 65
14.05.2024, 19:08
Цитата Сообщение от YuS_2 Посмотреть сообщение
безопасность своей жопы таки имеет значение
Цитата Сообщение от alhaos Посмотреть сообщение
для индивидуума это более чем имеет смысл,
?!

Цитата Сообщение от YuS_2 Посмотреть сообщение
празитирующие - это в случае использования чужого труда в личных целях, а если своего же труда и даже в личных целях - что тут паразитирующего?
как еще назвать человека который намеренно усложняет часть общего процесса в личных целях?

Добавлено через 4 минуты
я не точно не хочу тут выкрасить все в этом вопросе в монохромные цвета, просто призываю к персонализации не относиться как благу или злу по сути свой, процесс однозначно неоднозначный, со своими сильными и слабыми сторонами.
0
Любознательный
 Аватар для YuS_2
7404 / 2254 / 360
Регистрация: 10.03.2016
Сообщений: 5,213
14.05.2024, 20:05
Цитата Сообщение от alhaos Посмотреть сообщение
который намеренно усложняет часть общего процесса
так не использовать в общем процессе его труд... пусть ваяет что-то индивидуальное. Сам наваял, сам и получил... за то, что наваял. Наваял кто-то другой - так и получает другой... инструменты должны быть удобными для того, кто ваяет, а не для того, кто контролирует или даже просто использует то, что было написано не использующим. Иначе получим, как всегда: один с сошкой, а семеро с плошкой. Как чаще всего и бывает, при общественном распределении обязанностей... перефразирую: а распределители-то кто?
И потом, почему намеренно? Правда, тут уже нужны подробности, для оценки... но не хочу вдаваться в детали... из крайности в крайность, тоже не хочется бросаться... истина - она всегда, где-то посередине.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.05.2024, 20:05
Помогаю со студенческими работами здесь

Создать функцию с именем, которое хранится в переменной
Думаю суть вопроса понятна. Пытался реализовать следующим образом: class Controller{ function __construct(){ foreach...

Создать функцию с именем ез для вычисления двумерной матрицы по формуле
создать функцию с именем ез для вычисления двумерной матрицы Д(2на3) по формуле Д равно а+ 2 умножить на в+ три умножить на с.в главной...

Создать функцию с произвольным именем во время выполнения python скрипта
Предположим во время выполнения python скрипта нужно создать функцию с произвольным именем, содержащимся в строке как это можно сделать?...

как создать функцию в Matlab и потом её надо применить в C++ Builder или наоборот создать функцию в С++ и использовать в Mathlab)
помогите пожалуйста)

Если S является допустимым именем файла, то создать пустой файл с именем и вывести True
помогите решить. срочно надо сегодня сдавать. Дана строка S. Если S является допустимым именем файла, то создать пустой файл с этим...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru