Estou tentando determinar a ordem em que o usuário insere os parâmetros. Então, usando o seguinte exemplo:
function RepeatParamOrder {
[CmdletBinding()]
param
(
[bool]$param1=$false,
[bool]$param2=$false,
[bool]$param3=$false
)
Write-Output <order user entered params>
}
Se o usuário digitar o seguinte:
C:\>RepeatParamOrder -param3 true -param1 true
Eu gostaria idealmente de capturar a seguinte ordem em algum formato delimitado:(param3,param1)
A razão pela qual a ordem é importante é que existem muitos, muitos parâmetros que o usuário pode inserir e a ordem em que eles inserem os parâmetros é a ordem em que uma matriz RETURN produzirá valores associados a esses parâmetros. Portanto, neste exemplo, uma matriz 2-D de matrizes com dados associados (param3,param1)
é retornada e param2
ignorada, pois o usuário não deseja essa informação.
Estou procurando há mais de uma hora uma solução que permita ao script ler os parâmetros do pedido conforme inseridos, mas não tive sorte em encontrar uma solução. Também procurei como simplesmente ler a linha inteira C:\>RepeatParamOrder -param3 true -param1 true
para poder criar um loop para analisar as informações. E, embora pareça básico que deva haver um comando que simplesmente retorne o texto da linha, também não consigo encontrar essa solução. Eu examinei Get-Content
e Read-Host
eles não parecem fornecer uma solução (ou seja, uma vez que o usuário insere os valores dos parâmetros, a função/script fará todo o resto sem a necessidade de entrada adicional do usuário - como fornecer ordem além da ordem em que os parâmetros nomeados já estão entrou).
Deve haver uma solução óbvia, mas estou procurando as palavras-chave erradas ou interpretando mal uma solução (por exemplo, talvez Read-Host
seja a solução, mas não estou entendendo corretamente para extrair informações da entrada original do parâmetro do usuário).
Acho que você está procurando as propriedades de $MyInvocation . Tente o seguinte: