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

If ElseIf

14.04.2024, 17:00. Показов 3122. Ответов 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
507 / 160 / 49
Регистрация: 27.02.2016
Сообщений: 828
14.04.2024, 17:20
вам наверное можно записываться в тестировщики повершелла
0
0 / 0 / 0
Регистрация: 14.04.2024
Сообщений: 3
14.04.2024, 17:23  [ТС]
Цитата Сообщение от skouzmine Посмотреть сообщение
вам наверное можно записываться в тестировщики повершелла
то есть это баг?
0
507 / 160 / 49
Регистрация: 27.02.2016
Сообщений: 828
14.04.2024, 17:25
ну ясно же что как то S1 стала считаться строкой а не числом
'55' < '9'

есть мнение что повершел вообще рассадник багов недаром у него столько "ревизий"
0
0 / 0 / 0
Регистрация: 14.04.2024
Сообщений: 3
14.04.2024, 17:35  [ТС]
Цитата Сообщение от skouzmine Посмотреть сообщение
ну ясно же что как то S1 стала считаться строкой а не числом
походу да.

PowerShell
1
2
3
4
5
6
7
8
[int]$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}
else {$s2 = $s1}
$s2
так вроде работает)
0
2804 / 502 / 120
Регистрация: 26.09.2020
Сообщений: 949
Записей в блоге: 5
14.04.2024, 18:43
Что бы не подумали, что в пошике форматируется вывод, так, как выше…
PowerShell
1
.{ [int] $s1 = Read-Host "Введите число"; "{0:000000}" -f $s1 }
PowerShell
1
.{ [int] $s1 = Read-Host "Введите число"; "{0:000,000}" -f $s1 }
2
 Аватар для alhaos
1929 / 545 / 154
Регистрация: 20.02.2019
Сообщений: 2,664
Записей в блоге: 65
14.04.2024, 19:01
Цитата Сообщение от Zoulin Посмотреть сообщение
Сто миллионов лет назад увлекался паскалем, и там такая конструкция работала.
Сейчас решил осваивать powershell
ох и не просто вами придется...
0
507 / 160 / 49
Регистрация: 27.02.2016
Сообщений: 828
14.04.2024, 19:33
молодец! продолждайте изучать повершелл

его преимущества одновременно являются и его недостатками
0
Любознательный
 Аватар для YuS_2
7405 / 2255 / 360
Регистрация: 10.03.2016
Сообщений: 5,216
14.04.2024, 22:42
Цитата Сообщение от Zoulin Посмотреть сообщение
операции с цифрами, если меньше 99999 приводить к одной длине, добавляя слева нолики, а если больше, то оставлять как есть.
если больше трех тысяч - отнимут, если меньше - добавят...

PowerShell
1
(Read-Host "Введите число").padleft(6,'0')
1
163 / 50 / 5
Регистрация: 03.06.2020
Сообщений: 576
16.04.2024, 07:23
Цитата Сообщение от Zoulin Посмотреть сообщение
Сто миллионов лет назад увлекался паскалем
было б не хуже не снижать уровень до PS, а продолжить в C#. Для этого всего-то потребуется VsCode. Которым также може кодить с расширениями в PS.
0
 Аватар для alhaos
1929 / 545 / 154
Регистрация: 20.02.2019
Сообщений: 2,664
Записей в блоге: 65
16.04.2024, 08:07
Segera, Не надо путать гибкое с мягким, Powershell для своих задач конкурентов не имеет. Многого стоит уже то что на большинстве современных Windows системах он присутствует по дефолту, и на коленке ты можешь решить такие задачи, для подготовки к решении которых ты затратит бы уйму времени. Да есть вопросы с производительностью и использованием памяти, но в большинстве решаемых с помощью Powershell задач это абсолютно несущественно.

Добавлено через 3 минуты
Опять же сравнивать языки с динамической и со статической типизацией я считаю некорректно, где скорость разработки, где эффективность.
0
163 / 50 / 5
Регистрация: 03.06.2020
Сообщений: 576
16.04.2024, 08:15
2 alhaos
у меня было про переход от одного ЯП с ООП к скриптовому языку. А не как минимум не менее слабому по уровню C#.
Мощность и возможности PowerShell мне понятны наверное уже более 10 лет. Сделаны более сотни рабочих вариантов, на которых не я один работаю. Включая с GUI. Где вполне понятны его ограничения.
Если в целом об использовании PS админом, то без перехода в веб, мягко говоря есть смысл говорить о современном соответствия админа и требований его места работы. Где сложно найти адекватное применения PS.
0
 Аватар для volodin661
6688 / 2279 / 348
Регистрация: 10.12.2013
Сообщений: 7,884
16.04.2024, 10:10
какие-то админы, какие-то места..

Но совершенно определённо, что, начиная с какого-то момента, powershell перестал развиваться.
и увольнение Джеффри Сновера тоже вызывает вопросы.
0
1658 / 273 / 66
Регистрация: 03.06.2020
Сообщений: 692
16.04.2024, 10:21
Цитата Сообщение от volodin661 Посмотреть сообщение
начиная с какого-то момента, powershell перестал развиваться.
Я бы так не сказал, если речь не только про Windows PowerShell. В 7+ движение все-таки есть, хоть и не без косяков.
0
Любознательный
 Аватар для YuS_2
7405 / 2255 / 360
Регистрация: 10.03.2016
Сообщений: 5,216
16.04.2024, 12:34
Цитата Сообщение от volodin661 Посмотреть сообщение
с какого-то момента, powershell перестал развиваться.
здрасте нате... чойта? пуллреквесты закрываются выполнением, новая версия релиза 4 дня тому назад выпущена...

Цитата Сообщение от volodin661 Посмотреть сообщение
увольнение Джеффри Сновера тоже вызывает вопросы.
А увольнение ли? Может на почетную пенсию в гугл отправили, ну или сам ушел? Ему же уже за 60 должно быть...

А может ещё и поэтому:
Мы получили финансирование, но основная часть разработчиков находилась в Индии. Это была катастрофа, поскольку никто из нас не знал, как вести распределённую разработку. Для меня проблема заключалась в том, что моя команда разработчиков не уяснила ни проблему, ни подход. Они не могли выдавать независимые решения, которые сложились бы в нечто единое и согласованное. Поэтому пришлось потратить время и написать Monad Manifesto, где я задокументировал суть идеи. Этот документ и перенос всей разработки обратно в США, в Редмонд, позволили проекту достичь успеха.
По-моему, мне приписывают слишком много заслуг в создании PowerShell. PowerShell классный, потому что у нас был целый ряд выдающихся инженеров, которые вложили в проект свою крутость. Моя заслуга в том, что Monad Manifesto создал концептуальную структуру, которая всё расставила по своим местам.
Или поэтому:
Меня не столько интересует продвижении PowerShell, сколько успех других людей. Если кто-то преуспевает с имеющимися у него инструментами, зачем что-то менять?
А может быть и поэтому:
У нас сложная отрасль, и мне постоянно кажется, что мне наступают на пятки, что я не могу идти в ногу со временем. Очень трудно, но необходимо для меня было признать, что мои знания могут стать недостаточными, и нужно сфокусироваться на «обучении». Звучит безобидно и просто, но когда ты в комнате самый старший и понятия не имеешь, о чём идёт речь, чувствуешь, что трон под тобой шатается.
- кто там разберет, с их подковерной вознёй....
0
507 / 160 / 49
Регистрация: 27.02.2016
Сообщений: 828
16.04.2024, 16:17
Цитата Сообщение от alhaos Посмотреть сообщение
Powershell для своих задач конкурентов не имеет
??????
0
 Аватар для volodin661
6688 / 2279 / 348
Регистрация: 10.12.2013
Сообщений: 7,884
16.04.2024, 16:40
Цитата Сообщение от YuS_2 Посмотреть сообщение
новая версия релиза 4 дня тому назад выпущена...
Oh yes! теперь можно так:

dir * -r вместо dir * -rec
0
1658 / 273 / 66
Регистрация: 03.06.2020
Сообщений: 692
16.04.2024, 16:46
Цитата Сообщение от volodin661 Посмотреть сообщение
Oh yes! теперь можно так:
Я уже привык к dir -s

Добавлено через 2 минуты
PowerShell
1
2
3
$  (gcm dir).Parameters.Recurse.Aliases
s
r
0
 Аватар для alhaos
1929 / 545 / 154
Регистрация: 20.02.2019
Сообщений: 2,664
Записей в блоге: 65
16.04.2024, 19:03
skouzmine, Поясняю, Powershell задумывался в первую очередь как расширяемое средство автоматизации для Windows состоящее из оболочки с интерфейсом командной строки и языка сценариев, и под эти задачи с ним конкурировать уже не в состоянии ни cmd, ни vbs, ни js, что то другое в стоковой венде не присутствует, а это уже установка дополнительного ПО со всеми вытекающими (наши безопастнки на тот же интерпретатор питона реагируют как на красную тряпку) и не надо про его кроссплатформенность, как только я увижу среди результатов поиска по автоматизации на линукс хоть какие-нибудь решения на Powershell я усомнюсь, а пока нет.
0
507 / 160 / 49
Регистрация: 27.02.2016
Сообщений: 828
16.04.2024, 19:09
спасибо за объяснение

Цитата Сообщение от alhaos Посмотреть сообщение
Powershell задумывался в первую очередь как
- это у джеффри сновера надо спаршивать он так нимоку и не сказал
получилось забавно спорутен
кстати
как вы думаете на линукс есть у п шансы или нет (или п п)?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.04.2024, 19:09
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
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