Передать аргумент из модуля - PullRequest
0 голосов
/ 29 мая 2019

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

Модуль содержит некоторые пользовательские аргументы, такие как -one, -two, -three

Я пытаюсьсделать графический интерфейс, используя команды из модуля.например.Если в раскрывающемся меню выбрано «One», пропустите команду -one.

Однако, когда я делаю это (используя приведенный ниже пример), я получаю сообщение об ошибке: «Не удается найти позиционный параметр, которыйпринимает аргумент '-one'. "

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

Я знаю, что могу выполнить инструкцию IF (например, если combobox.text = "one", сделайте это), однако я бы предпочел использовать переменную вместо необходимости делать несколько операторов if или цикл.Использование переменной кажется более простым вариантом.

Я изучаю этот язык по ходу дела, поэтому я еще не совсем там со знанием:)

Спасибо за любую помощь.Надеюсь, это имело смысл.


$variable = $comboboxNumbers.Text
#example One is selected from the dropdown

Custom-ADCommand -identity "username" $variable

Ответы [ 2 ]

0 голосов
/ 29 мая 2019

Оператор If, возможно, намного приятнее, но можно создать строку и затем выполнить строку в powershell.

В качестве простого примера возьмем эту строку

$string = '@("test","hello","whats up")'

Затем я могу выполнить его и использовать для создания массива

$array = invoke-expression $string

Который создаст массив с "test", "hello" и "whats up" и сохранит его в $array

PS C:\temp> $string = '@("test","hi","what")' PS C:\temp> $array = Invoke-Expression $string PS C:\temp> $array test hi what

0 голосов
/ 29 мая 2019

Ниже приведен простой пример метода:

    function Set-SwitchParams {
        [CmdletBinding()]
        param (
            # Parameter help description
            [Parameter(Mandatory = $false)]
            [switch]
            $SwitchA,
            [Parameter(Mandatory = $false)]
            [switch]
            $SwitchB
        )

        begin {
        }

        process {
        }

        end {
            if ($SwitchA){
                Write-Host "SwitchA is activated"
            }
            if ($SwitchB){
                Write-Host "SwitchB is activated"
            }
        }
    }

Поместите метод в файл PS1, например, SwitchPlayground.ps1.Затем отправьте файл в PowerShell через:

  . .\SwitchPlayground.ps1

После этого вы можете поиграть с командой, например:

 Set-SwitchParmas -SwitchA

Я бы предложил изучить следующие ссылки:

Надеюсь, это поможет.

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