Предоставление примера в именованном параметре PowerShell

С таким кодом:

param
(   
    [Parameter(Mandatory = $true)] 
    [string]$TenantId,

    [Parameter(Mandatory = $true)] 
    [System.Uri]$HostUrl,
         
    [Parameter(Mandatory = $true)] 
    [string]$SiteId,
         
    [Parameter(Mandatory = $true)] 
    [guid]$WebId,
         
    [Parameter(Mandatory = $true)] 
    [guid]$ListId,
         
    [Parameter(Mandatory = $true)] 
    [guid]$UniqueId,    
         
    [Parameter(Mandatory = $true)] 
    [string]$OutFile
)

Connect-MgGraph -Scopes "Sites.FullControl.All" -TenantId $TenantId -ForceRefresh

Get-MgSiteListItemDriveItemContent -ListId $ListId -ListItemId $UniqueId -SiteId "$($HostUrl.DnsSafeHost),$SiteId,$WebId" -OutFile $OutFile

Disconnect-MgGraph

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

cmdlet  at command pipeline position 1
Supply values for the following parameters:
TenantId (to get TenantID go to Admin Center - Settings and copy TenantID): xxx
HostUrl (to get HostUrl copy HostUrl from the log files): yyy-yyy 
SiteId (SiteId can be obtained directly in SharePoint site): zzz-zzz-zzz

и т. д.

Я знаю, что есть параметр HelpMessage, например.

[Parameter(Mandatory = $true, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, HelpMessage = "Site name")]

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

Я думаю, вы просите что-то похожее на этот пост: stackoverflow.com/questions/5237723/…

zjg.robin 15.12.2020 02:03
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
1
134
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Можете ли вы уточнить, что вы после? «но я хочу, чтобы это сообщение отображалось, когда конечный пользователь указывает значение». Вы хотите, чтобы он отображался как вопрос/ответ во время работы? Если это так, вы не хотите устанавливать его в качестве обязательного параметра, вы хотите Read-Host переменные.

Например:

      $TenantId = Read-Host "TenantId (to get TenantID go to Admin Center - Settings and Copy TenantID)"
      
      if ($null -eq $TenantId) {
            Write-Output "Invalid TenantId supplied, unable to continue."
            return
      }

И затем вы сделаете это для всех ваших переменных и предпримете действия, как только они будут предоставлены.

Редактировать: Используя ответ, указанный zjg.robin, при выполнении обязательного параметра пользователь может ввести !? чтобы получить справочное сообщение для обязательных параметров. Если вы предпочитаете, чтобы они запрашивались, вам следует использовать методологию «Вопрос/ответ» в отличие от командлета с требуемыми параметрами. Или вы можете предоставить ему оба мира и сделать его настоящим командлетом внутри функции. Затем при вызове скрипта, если параметры не указаны, вы запрашиваете их для таковых и передаете в функцию. На самом деле зависит от ваших конкретных требований.

Другие вопросы по теме