Форум программистов, компьютерный форум, киберфорум
PowerShell
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.87/15: Рейтинг темы: голосов - 15, средняя оценка - 4.87
52 / 18 / 11
Регистрация: 27.03.2013
Сообщений: 789

Как оформить подсказки при вводе параметров?

08.09.2016, 11:02. Показов 3385. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте

Подскажите пожайлуста
Как оформить подскази при вводе параметров

Вот пример кода

PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
clear
#Get-Service -Name $args[0] -ComputerName $args[1]
#get-help Get-Service -full
 
write-host **************************************
write-host Создаем имя функции - par
write-host **************************************
write-host **************************************
write-host Значения в функцию передаем с помощью параметров
write-host Параметры можно определить внутри фигурных скобок, используя 
write-host ключевое слово 'Param'
write-host **************************************
# мой совет, всегда указывайте [CmdletBinding()] 
# в начале скрипта (должен идти до секции param()), 
# чтобы можно было сразу сказать, что это расширенная функция. 
# Так же, учтите, что если эта конструкция указана, но ваша 
# функция никаких аргументов не принимает, вы должны 
# прописать секцию param(). Хотя бы пустую.
 
 
function Advanced
{ 
 
[CmdletBinding()]
# Этот атрибут делает функцию расширенной 
 
Param (
# Используем аргумент Mandatory и Position
[Parameter (Mandatory=$true, Position=1,
                         ValueFromPipeline=$true)]
[PSDefaultValue(Help = 'например alg')]
[string]$service = $(read-host "Введите имя службы"),
   
# Аргумент ValueFromPipeline определяет, что параметр принимает 
# входные данные из объекта конвейера.
# $service и $computer  - это параметры, который при вызове функции
# появятся в строке ввода, чтобы пользователь вввел нужное значение
 
 
[Parameter (Mandatory=$true, Position=2,
                      ValueFromPipeline=$true)]
[string]$computer = $(read-host "Введите имя компьютера")
)
 
Get-Service -ServiceName $service -ComputerName $computer
}
write-host ***** Вызов функции ****************
Advanced
При отработке кода появляется запрос параметра
Укажите значения для следующих параметров:
service:
Как можно сюда добавить еще подсказку в виде ввода возможных параметров, плюс проверку на ввод неправильного значения, на основе какого либо шаблона ?

Например
В другом подобном коде запрашивается IP адрес сетевой карты, предлагается ввести одноименный параметр, например
IPaddr, при этом запросе, так же сразу выводится подсказка , например

Введите адреса в диапазоне 10.0.0.1 - 10.0.0.255
При неправильном вводе, например 10.0.1.1, появлялось бы сообщение
адрес не находится в нужном диапазоне
Как при этом добавить проверку на ввод неправильного написания адреса
10,0,0,1, то есть проверка по формату написания?

Спасибо.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.09.2016, 11:02
Ответы с готовыми решениями:

Как реализовать подсказки при вводе в input?
Добрый день Киберовцы! =) Идея такая: Нужно чтоб при вводе в поле, всплывали подсказки(ну это видимо через поиск подстроки) как при вводе...

Как при вводе email в TextBox предлагать подсказки ранее введенных?
Как при вводе emaila предлагать подсказки ранее введенных? Вообще думаю хранить в xml файле, а потом искать в нем и подставлять? ...

Существует ли возможность создания подсказки при вводе
Дано поле, туда вводится название чего-либо, попутно вводу выходят подсказка, предпологаемые слова или что-то в этом роде.

8
Покинул форум
3700 / 1483 / 355
Регистрация: 07.05.2015
Сообщений: 2,903
08.09.2016, 14:23
Откуда сие копипастили?
Вообще, для начала Вам немешало бы внимательно прочитать:
PowerShell
1
2
man abour_functions_advanced
man about_functions_advanced_parameters
а уж после задавать вопросы вроде "как проверить диапазон" и иже с ними.
Во-вторых, с чего Вы взяли, что PS должен отображать подсказку? Параметр он и есть параметр, любое недопустимое с точки зрения кода значение будет порождать исключение в хосте, тем паче хост не какая-нибудь IDE для блондинок, а всего лишь интерпретатор.
0
52 / 18 / 11
Регистрация: 27.03.2013
Сообщений: 789
09.09.2016, 10:36  [ТС]
cам написал
комментарии писал на основе советов с блогов и справок
0
 Аватар для v_svitere
774 / 423 / 137
Регистрация: 03.06.2009
Сообщений: 1,223
Записей в блоге: 4
09.09.2016, 10:49
masli, Если хотите красивый диалог, подсказки комментарии и прочее, пишите winform-приложение.
Класс system.windows.forms можно использовать в powershell.
хост powershell - немного для других целей
0
52 / 18 / 11
Регистрация: 27.03.2013
Сообщений: 789
14.09.2016, 16:59  [ТС]
PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{
 [CmdletBinding()] 
   param (
         [parameter  (mandatory=$true,
                           ValueFromPipeline=$true,
                           Position=0,
                           HelpMessage="Справочное сообщение")]
                          [string[]]
                          $title1
                           )
 
  write-host $title1
  
   
 }
HelpMessage="Справочное сообщение" - данный аргумент не отрабатывается
0
505 / 158 / 49
Регистрация: 27.02.2016
Сообщений: 818
16.09.2016, 07:27
как раз отрабатывается :

Code
1
2
3
4
5
6
7
PS C:\Users\Serguei> . .\test.ps1
PS C:\Users\Serguei> Test
 
cmdlet Test at command pipeline position 1
Supply values for the following parameters:
(Type !? for Help.)
title1[0]: !?
Справочное сообщение
0
52 / 18 / 11
Регистрация: 27.03.2013
Сообщений: 789
19.09.2016, 17:33  [ТС]
PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
clear
 
function help {
 [CmdletBinding()] 
   param (
         [parameter  (mandatory=$true,
                           ValueFromPipeline=$true,
                           Position=0,
                           HelpMessage="введите сообщение")]
                          [string[]]
                          $title1
                           )
 
  write-host $title1
  
   
 }
help
Вывод

PowerShell
1
2
3
4
5
6
7
8
Командлет help в конвейере команд в позиции 1
Укажите значения для следующих параметров:
(Для получения справки введите !?.)
title1[0]: !?
введите сообщение
title1[0]: "проверка"
title1[1]: 
"проверка"
Как то громоздко, в общем этот параметр негде и применить, это не то что хотел
0
505 / 158 / 49
Регистрация: 27.02.2016
Сообщений: 818
19.09.2016, 19:41
тогда руками , без mandatory
PowerShell
1
2
3
4
 if (-not [bool]$PSBoundParameters['title1'].IsPresent) { 
 
 
... }
0
52 / 18 / 11
Регистрация: 27.03.2013
Сообщений: 789
21.09.2016, 14:56  [ТС]
Цитата Сообщение от skouzmine Посмотреть сообщение
тогда руками , без mandatory

PowerShell
1
2
if (-not [bool]$PSBoundParameters['title1'].IsPresent) { 
... }
поясните пожайлуста на примере

Например на этом коде

PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
function Advanced
{ 
 
[CmdletBinding()]
# Этот атрибут делает функцию расширенной 
 
Param (
# Используем аргумент Mandatory и Position
 
[Parameter (Mandatory=$false, Position=1
                                         )]
 
[string]$service = $(read-host "Введите имя службы"),
   
# Аргумент ValueFromPipeline определяет, что параметр принимает 
# входные данные из объекта конвейера.
# $service и $computer  - это параметры, который при вызове функции
# появятся в строке ввода, чтобы пользователь вввел нужное значение
 
 
[Parameter (Mandatory=$false,Position=2
                                        )]
[string]$computer = $(read-host "Введите имя компьютера")
)
 
Get-Service -ServiceName $service -ComputerName $computer
}
Advanced
Добавлено через 5 минут
Замена этому, с проверкой на правильность ввода
Цитата Сообщение от masli Посмотреть сообщение
PowerShell
1
$service = $(read-host "Введите имя службы")
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.09.2016, 14:56
Помогаю со студенческими работами здесь

Visual studio 2010 professional. не отображаются подсказки при вводе кода
доброго времени суток. подобная проблема уже поднималась на форуме, но мне не помогло. решения я не нашел ни в гугле (уже недели две голову...

Вывод ошибки при вводе неверных параметров в textbox
Помогите! Допустим у нас есть 1 textbox и в него можно записывать только цифры, как вывести сообщение об ошибке при вводе в textbox текста,...

Оформить код, как функцию, изменяющую значения параметров
Помогите!) как можно оформить как функцию, изменяющуюся значения параметров?? вот задача) <?php Echo “Даны действительные числа...

Почему при вводе числа программа работает нормально, а при вводе буквы уходит в бесконечный цикл?
void mainmenu() { cout << "Введи число" << endl; cin >> choice; if (choice == 1) { cout << "Hello" << endl; } ...

Как создать свой intelisense [подсказки при наборе]
Начало темы, идея — https://www.cyberforum.ru/windows-forms/thread2114035.html Подсказки первых слов строки для textbox можно сделать с...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты 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
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru