меню командной строки параметров powershell - PullRequest
0 голосов
/ 19 ноября 2018

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

Например, чтобы определить, следует ли выполнить один прогон или пакетный прогон для операции смены пароля:

. / Script.ps1 -singleMODE -UserName -Password

. / Script.ps1 -batchMODE -filename

Что меня смущает, пока я изучаю Powershell? Я посмотрел на параметры и могу прочитать их в переменные из командной строки ... но то, что я хочу, как указано выше, имеет некоторую логику, и я немного растерялся. Может кто-нибудь подсказать мне, как это называется .... и тогда я смогу продолжить поиск в Google! :)

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

любая помощь приветствуется! :)

ура

1 Ответ

0 голосов
/ 19 ноября 2018

Вам нужны наборы параметров

Это демонстрационная версия с функцией, но она работает так же хорошо со скриптом (просто поместите блок param вверху.)

function Demo {
    param(
        [Parameter(ParameterSetName='Funk')][switch]$Funk,
        [Parameter(ParameterSetName='Rock')][switch]$Rock,
        [Parameter(ParameterSetName='Funk')][string]$WriteFunk,
        [Parameter(ParameterSetName='Rock')][string]$WriteRock
    )
    if($Funk){
        foreach ($C in $WriteFunk.ToCharArray()){
            $N = 0..15 | Get-Random
            Write-Host $C -ForegroundColor $N -BackgroundColor $(15-$N) -NoNewline
        }
        Write-Host ''
    }
    if($Rock){
        Write-Host $WriteRock -ForegroundColor Gray -BackgroundColor DarkGray
    }
}

Demo -Funk -WriteFunk "Melt your brain"
Demo -Rock -WriteRock "Riders on the storm"
...