Форум программистов, компьютерный форум, киберфорум
PowerShell
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.92/12: Рейтинг темы: голосов - 12, средняя оценка - 4.92
0 / 0 / 0
Регистрация: 14.04.2024
Сообщений: 3

If ElseIf

14.04.2024, 17:00. Показов 3455. Ответов 63
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, уважаемые)
Сто миллионов лет назад увлекался паскалем, и там такая конструкция работала.
Сейчас решил осваивать powershell, и вот не могу понять, почему корректно не работает.
самая вроде простая задача - операции с цифрами, если меньше 99999 приводить к одной длине, добавляя слева нолики, а если больше, то оставлять как есть.

PowerShell
1
2
3
4
5
6
7
8
$s1 = Read-Host "введите число" 
if ($s1 -le 9) {$s2 = "0000"+$s1} 
elseif (($s1 -ge 10) -and ($s1 -le 99)) {$s2 = "000"+$s1} 
elseif (($s1 -ge 100) -and ($s1 -le 999)) {$s2 = "00"+$s1} 
elseif (($s1 -ge 1000) -and ($s1 -le 9999)) {$s2 = "0"+$s1} 
elseif (($s1 -ge 10000) -and ($s1 -le 99999)) {$s2 = $s1} 
elseif ($s1 -ge 100000) {$s2 = $s1} 
$s2
В первый раз выдаёт вроде правильный результат, но потом - нет.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.04.2024, 17:00
Ответы с готовыми решениями:

Разный вывод (printf) табуляции (\t) ветвлений (if-if-if-else) и (if-elseif-elseif-else)
Почему результатом выполнения нижеследующего кода при вводе, например: "qweqwe" консоль (linux) отображает слитно: "qwe\tqwe"? ...

If.Then.Else.Elseif
Здравствуйте, я подумал по-практироватся в Visual Basic, но у меня появилась маленькая проблемка. Вот код: Public Sub vairis() Dim...

If/elseif/else
Здравствуйте, я только начал изучать php. У меня вопрос почему на выходе у кода <?php $age = 21; if ($age > 18) ...

63
1658 / 273 / 66
Регистрация: 03.06.2020
Сообщений: 706
16.04.2024, 19:24
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от skouzmine Посмотреть сообщение
как вы думаете на линукс есть у п шансы или нет (или п п)?
У меня, например, винды нет вообще, а pwsh прекрасно себе живет. Не логин-шелл, но в юзерспейсе только им пользуюсь.
0
507 / 160 / 49
Регистрация: 27.02.2016
Сообщений: 832
16.04.2024, 19:59
ну в линусе отсутствуют такие гиганты мысли как cmd, vbs, js но зато есть баш ш сш зш и многовсяких ш зачем же пш
0
1658 / 273 / 66
Регистрация: 03.06.2020
Сообщений: 706
16.04.2024, 20:55
Цитата Сообщение от skouzmine Посмотреть сообщение
зачем же пш
Это, как по мне, гораздо удобней и мощней любого линуксового шелла. Чуть медленее, но только если смотреть тесты, на глаз одинаково. Память кушает с аппетитом, но это то, чем приходится пожертвовать. На ноуте с 32 гб пофиг, а на другом с 8 Гб, терпимо.
0
507 / 160 / 49
Регистрация: 27.02.2016
Сообщений: 832
16.04.2024, 21:18
посмотрел индекс моделуй ансибл

https://docs.ansible.com/ansib... egory.html


где там повершел и RHEL или Debian ??

вёс что нашел для виндоз
ansible.windows.win_powershell module – Run PowerShell scripts


как же так
Миниатюры
If ElseIf  
0
17.04.2024, 00:29

Не по теме:

Цитата Сообщение от alhaos Посмотреть сообщение
расширяемое средство автоматизации для Windows состоящее из оболочки с интерфейсом командной строки и языка сценариев, и под эти задачи с ним конкурировать уже не в состоянии ни cmd, ни vbs, ни js
Странно читать про "уже". Оболочка и язык — это не задачи, а особенности. Для консольной работы они и так особо не были конкурентами, cscript считался больше факультативным (под опр. задачи типа логирования в вых. поток и интерактивной отладки), так что сравнивать их в этом отношении даже смысла не было. Навсегда (или очень надолго) останется одна существенная проблема для встроенных скриптосредств — нет полноценной заменяемости чем-то одним под разные условия и типы задач. Поэтому приходится изучать и то и другое, добавляя в общий бульон сторонние языковые ингридиенты (под хоткеи, мышино-джойстиковые жесты, оконно-кропочную кастомизацию, web или что-то ещё).

Цитата Сообщение от alhaos Посмотреть сообщение
что то другое в стоковой венде не присутствует, а это уже установка дополнительного ПО со всеми вытекающими
Ну по массе обновление версий PS и тем более .Net Core/Framework ничем не лучше, а иногда и хуже. К примеру, небольшая портабельная cli-программка (в т. ч. многофунциональная аля sfc или busybox) в ряде случаев даёт не сильно искушённому юзеру возможность без особой сноровки получить решение в десятки (а иногда и сотни) раз быстрее, чем залипание в неочевидных синтаксических путах posh'a, включая API и другие премудрости. Да и многие портабл-интерпретаторы займут куда меньше. Тут, в общем-то, как говаривал Альберт, всё относительно.

0
163 / 50 / 5
Регистрация: 03.06.2020
Сообщений: 591
17.04.2024, 08:34
Цитата Сообщение от alhaos Посмотреть сообщение
как только я увижу среди результатов поиска по автоматизации на линукс хоть какие-нибудь решения на Powershell я усомнюсь
мне странно, почему это до сих пор было не очевидно
Установка PowerShell в Linux
GitHub
версии под deb, rpm
причем сразу с замахом на 7.4. Без какого-то баловства с пятерками и ниже.
Понятно, многие наработки здесь не будут работать или будут работать сильно по-другому.
Пока не было ни одной причины воспользоваться. Возможно эти инструменты будут удобнее при развертывании и администрирования докеров. Или виртуализации Proxmox.
Где значительно больше наработок как раз под тукс, чем винду. Но похоже MS не согласны отставать и тут.
Всё-таки странное сравнение и даже поиск преимуществ скриптового языка с полноценным ЯП с ООП и конечно массой библиотек. Которые далеко не тоже самое, как модули в PS.
0
Любознательный
 Аватар для YuS_2
7407 / 2260 / 361
Регистрация: 10.03.2016
Сообщений: 5,216
17.04.2024, 12:16
Цитата Сообщение от skouzmine Посмотреть сообщение
это у джеффри сновера надо спаршивать он так нимоку и не сказал
отчего же никому... направо и налево всем рассказывает... без купюр:
Джеффри: В создании PowerShell отчётливо просматриваются три «момента истины». Первый возник из-за уникального дизайна инструмента командной строки WMIC. Я разработал его специально, чтобы обойти некоторые безумные бюрократические процедуры выпуска новых продуктов в Microsoft. Это был конвейерный процессор XML-документов с XSLT-преобразованиями. Такая архитектура позволила мне без особых усилий добавить невероятное количество мощности . Я посмотрел на это и сказал: «Вау».

Второй момент случился, когда я пытался убедить команду, портирующую ksh на Windows, использовать основные идеи, которые я заложил в WMIC. Я хотел, чтобы они реализовали мои идеи с помощью .NET для создания оболочки общего назначения. Они смотрели на меня так, словно у меня изо рта торчал крысиный хвост, и ничего не понимали. В конце концов я просто ушёл в свой кабинет и через месяц написал 10 000 строк кода. Это был прототип, который включал все основные концепции того, что сейчас называется PowerShell. Как только я смог показать воплощение идеи, люди всё поняли и захотели пойти этим путём.

Мы получили финансирование, но основная часть разработчиков находилась в Индии. Это была катастрофа, поскольку никто из нас не знал, как вести распределённую разработку. Для меня проблема заключалась в том, что моя команда разработчиков не уяснила ни проблему, ни подход. Они не могли выдавать независимые решения, которые сложились бы в нечто единое и согласованное. Поэтому пришлось потратить время и написать Monad Manifesto, где я задокументировал суть идеи. Этот документ и перенос всей разработки обратно в США, в Редмонд, позволили проекту достичь успеха.

По-моему, мне приписывают слишком много заслуг в создании PowerShell. PowerShell классный, потому что у нас был целый ряд выдающихся инженеров, которые вложили в проект свою крутость. Моя заслуга в том, что Monad Manifesto создал концептуальную структуру, которая всё расставила по своим местам. Это позволило нашим гениям объединить свои IQ и создать когерентное решение. Как подсказывает опыт, такое редко случается.

Цитата Сообщение от lesser Посмотреть сообщение
Это, как по мне, гораздо удобней и мощней любого линуксового шелла.
Тут можно подробнее описать отличия... плюсы-минусы.
Навскидку:
1. PS работает с объектами, а не с текстом... даже при внешней схожести конвейеров, это две большие разницы.
2. Наименования команд и утилит в линуксе, в виде аббревиатур, придуманы в 60-х годах прошлого века и чтобы ими эффективно пользоваться, придется зубрить, а если ещё здесь вспомнить многочисленные ключи, которые с одинаковыми символами в разных командах имеют разное значение, то можно крышку сразу и захлопнуть в том чайничке, которым попытаться это всё запомнить... в PS же, осмысленные названия командлетов, у которых параметры в основном однообразные по наименованиям, да и по мере запоминания, вполне можно сократить команды до алиасов, чтобы в консоли было комфортнее набирать короткие сценарии...
3. Для окнофилов становится проще окунуться в неизвестный мир зоопарка пингвинов... шутка, в которой всего лишь, доля шутки.
4. Что ещё... конвейер более продуманный и функциональный. Хотя это тот же п.1...
5. Модульность и несложная расширяемость оболочки.
... что-то ещё, что невозможно описать в паре слов, а разворачивать простыни - я не фанат никсов, поэтому кому захочется, сам всё изучит и сравнит.
Да, непривычно, необычно, как впрочем и в любом новом деле, но это ведь общая проблема при изучении любого ПО, а не конкретно powershell.

В общем, плюсы есть... наверное, есть и минусы... но я не буду их озвучивать...
0
1658 / 273 / 66
Регистрация: 03.06.2020
Сообщений: 706
17.04.2024, 12:59
Цитата Сообщение от YuS_2 Посмотреть сообщение
наверное, есть и минусы...
Если взять базовый набор core utils, то с ними pwsh взаимодействует без проблем, но встречаются другие нативные, которые могут просто крешануть оболочку, но к счастью они не так уж часто мне и попадались и это было скорее на попробовать. Например clifm, который запускается, работает, но при выходе убивает pwsh, из которого был запущен.

Функционал, по понятным причинам не такой, как под виндоус, но все синтаксические конструкции работают.

Разработчики уделяют меньше внимания на юникс-версии, как под линукс, так и под макось. Иногда исправление багов приходит только через релиз. Во многом это даже не powershell, а подкапотный Net Core.

В целом, использование pwsh as daily driver приближается к 99%, один процент, на команды в контексте sudo, оно ничего не знает про pwsh.
0
507 / 160 / 49
Регистрация: 27.02.2016
Сообщений: 832
17.04.2024, 17:15
Цитата Сообщение от YuS_2 Посмотреть сообщение
направо и налево всем рассказывает
роигинальная сслыка : https://evrone.com/blog/jeffrey-snover-interview ?

там сказано честно

In Linux, if you can modify a file and run a process, you can manage anything. That is why awk, sed, and grep are management tools. At the time, nothing on Windows worked that way.

в этом по мнению некоторых роетсяк пробелма
0
1658 / 273 / 66
Регистрация: 03.06.2020
Сообщений: 706
17.04.2024, 17:42
Цитата Сообщение от skouzmine Посмотреть сообщение
That is why awk, sed, and grep are management tools. At the time, nothing on Windows worked that way
Странно это слышать в интервью 2021 года. PowerShell к этому времени уже полностью покрывал функционал этих утилит
0
507 / 160 / 49
Регистрация: 27.02.2016
Сообщений: 832
17.04.2024, 18:08
есть мнение повершел дорогое решение для уникс так как он решает уже хорошо решенные задачи через пожу
винду тизировать никто не запрещает как угодно способом
0
1658 / 273 / 66
Регистрация: 03.06.2020
Сообщений: 706
17.04.2024, 18:21
Сколько людей, столько мнений. На баш-портянки без слез смотреть невозможно. Ну и как awk, sed и grep относятся к шеллам вообще? Это утилиты, которые работают и в powershell в том числе. Создайте директорию в bash без mkdir, тут даже cmd.exe смотрит снисходительно.

Code
1
2
$ builtin mkdir
bash: builtin: mkdir: not a shell builtin
0
507 / 160 / 49
Регистрация: 27.02.2016
Сообщений: 832
17.04.2024, 18:27
спасибо
и всё-таки иначе чем привычкой делать под себя обосновать разработку ещё одного тула в уже занятое трудно

ну и нет других идей чем вилописед тоже микфорост фирменное
0
1658 / 273 / 66
Регистрация: 03.06.2020
Сообщений: 706
17.04.2024, 18:59
Цитата Сообщение от skouzmine Посмотреть сообщение
ну и нет других идей чем вилописед тоже микфорост фирменное
Я считаю, что мелкие сделали по-настоящему хороший шелл и скриптовый язык. Если вспомнить мучения с батниками, особенно с обработкой текста, то повершелл вообще верх эволюции. Ну вот вспомните псевдо-массивы или другие трюки с set, это холодный пот. Как-то понастальгировал на старые батники, которые сам когда-то писал и поймал себя на том, что я уже не понимаю, как они работают.

Но есть и неприятные моменты из области планирования приложения, это пресловутая обратная совместимость, которая не дает нормально развиваться. Если на Windows PowerShell (5.1) по ощущениям забили (заморозили), то для PowerShell Core (6+), это тяжелое бремя. Расхождений между этими двумя ипостасями уже большие, даже на уровне синтаксиса, просто наступит момент, когда придется принимать непопулярные решения, даже в ущерб миллионам написанных скриптов.
0
 Аватар для volodin661
7093 / 2324 / 353
Регистрация: 10.12.2013
Сообщений: 8,018
17.04.2024, 19:09
skouzmine,
Таков наш примар. С нами габузиться для вашего оглода не сростно. По габарям?
0
Любознательный
 Аватар для YuS_2
7407 / 2260 / 361
Регистрация: 10.03.2016
Сообщений: 5,216
17.04.2024, 21:40
Цитата Сообщение от lesser Посмотреть сообщение
Странно это слышать в интервью 2021 года. PowerShell к этому времени уже полностью покрывал функционал этих утилит
Да нет, он же там рассказывает историю создания powershell, т.е. речь идет о начале 2000-х годов. Те цитаты, что я приводил, они, собственно, из того же источника, только ссылка на оригинальный перевод интервью, выглядит так:
https://evrone.ru/blog/intervi... -interview
А полный абзац, с той фразой:
Тут возникает вопрос: зачем изобретать PowerShell, почему бы просто не использовать ksh или bash? Я давно работаю с Unix, поэтому это было моим первым порывом. Я попробовал и потерпел неудачу. Существует коренное различие в архитектуре между Unix и Windows. Linux — это ОС, ориентированная на работу с файлами, а Windows — это API-ориентированная ОС. В Linux, если вы можете изменить файл и запустить процесс, вы можете управлять чем угодно. Вот почему awk, sed и grep являются инструментами управления. В то время в Windows ничего не работало подобным образом. Все держалось на API, который возвращал структурированный объект. Вот почему awk не работает с WMI, sed не работает с Active Directory, а grep не работает с реестром. Чтобы управлять этой средой, мне пришлось изобрести новый инструмент.
Так будет понятнее, о чем речь идет...
Это как показатель того, что фраза выдернутая из контекста, может выглядеть очень странно
0
507 / 160 / 49
Регистрация: 27.02.2016
Сообщений: 832
18.04.2024, 00:31
@YuS_2 так никто не спорит что без пш в винде было
плохо очень другими словами
а пытаемся понять пш лезет юникс другими словами - зачем
0
 Аватар для volodin661
7093 / 2324 / 353
Регистрация: 10.12.2013
Сообщений: 8,018
18.04.2024, 01:09
а это что ещё за ужос ?

ConvertFrom-String

какие-то космические технологии
0
1658 / 273 / 66
Регистрация: 03.06.2020
Сообщений: 706
18.04.2024, 06:01
Цитата Сообщение от volodin661 Посмотреть сообщение
ConvertFrom-String
Наверное ConvertFrom-StringData? Удобная штука для преобразования key<separator>value данных в таблицу, тут главное входные данные должны быть одной строкой
0
 Аватар для volodin661
7093 / 2324 / 353
Регистрация: 10.12.2013
Сообщений: 8,018
18.04.2024, 13:52
ConvertFrom-String -- automatically-generated, example-driven parsing

ссылки:
https://www.microsoft.com/en-u... shextract/
https://www.microsoft.com/en-u... owershell/
https://learn.microsoft.com/en... rshell-7.4

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

Есть ли elseif
Я чего-то не понял. В С++ нет функции elseif ? А если нет, что ее может заменить?

If/elseif/else в переменную
Есть переменная с условием $var = function_name($var2, ($_SESSION == 'ru' ? '****' : '####'), $var); как изменить этот код, если...

не работает if, elseif
Добрый день. Проблема(может быть и детская))), но никак не могу понять ПОЧЕМУ ?? Суть состоит в том что в $_GET прилетает значения в...

не работает if elseif
Добрый день. Проблема(может быть и детская))), но никак не могу понять ПОЧЕМУ ?? Суть состоит в том что в $_GET прилетает значения в...

Проблема с elseif
Всем привет. Есть такая тема в коде, где при нажатии кнопок, каждый у себя (два пользователя) они заносят данные в бд и выполняют скрипт,...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Эксперимент с картинкой-обложкой на CodinGame
Adler 10.07.2026
Решил на днях провести эксперимент. У меня есть аккаунт на CodinGame, ТОП-3 по РФ среди 2200 участников (в разделе соревнования по программированию ИИ-ботов). Там есть обложка, куда можно влепить. . .
После бана на Пикабу не работает авторизация аккаунта с Яндекса.
Hrethgir 09.07.2026
В частности https:/ / auto. ru/ logbook/ zapret-na-vozhdenie-posle-65-let_1cf28789-07b4-4c75-a2f7-4cd4edf9deeb тут хотел оставить комментарий такой Зрите в корень - монополизация на разработку программ. . .
GitDOS: Когда я решил скрестить MS-DOS, GitHub и Claude
MaGz GoLd 08.07.2026
Привет, Киберфорум! Хочу поделиться своим проектом, который, надеюсь, вас заинтересует. GitDOS — это веб-приложение, которое позволяет запускать DOS в браузере с тремя крутыми фичами: диски живут в. . .
Учебный мини "цифровой двойник" = (Сервер = Java + Flask_питон )+(3D = Гугловскаая 4T nvideo + google colab) +( WMS = Odoo на Docker)
anaschu 07.07.2026
Увидел в требованиях к вакансии создателя имитационных моделей связку (REst + Api + WMS + Anylogic + питон + 3D Nvideo), и решил посмотреть, что это такое. Из этого всего я работал более менее. . .
Море в объективе
kumehtar 06.07.2026
Хотел написать много проникновенных слов, но передумал. Оно само - говорит. Кто слышит тот слышит.
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась. Первый вариант. . .
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2. Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru