Использование параметра Powershell с ошибкой типа данных net.ipaddress - PullRequest
0 голосов
/ 26 января 2012

У меня есть функция powershell, которая принимает такой параметр:

    function whatever {
    param (
    [parameter(Mandatory=$true)]
    [Net.IPAddress]
    $ip1,

    [parameter(Mandatory=$true)]
    [Net.IPAddress]
    $ip2
    )
    }

Я получаю сообщение об ошибке

    whatever("1.1.1.1","2.2.2.2")

Я получаю ошибку

Не удалось обработать преобразование аргумента для параметра 'ip1'.Невозможно преобразовать значение «System.Object []» типа «System.Object []» в тип «System.Net.IPAdd ress».

Я также пытался установить переменную, похожую на

    $ipaddr=[Net.IPAddress]("1.1.1.1")

но выдает ту же ошибку.

Любая помощь будет отличной

Ответы [ 2 ]

4 голосов
/ 26 января 2012

Rerun является правильным.Это обычная точка отключения при изучении PowerShell, поскольку для вызова функций в большинстве других языков требуется скобка.

В дополнение к ответу на повторный запуск вы также можете вызвать вашу функцию с именованными параметрами, например:

whatever  -ip2 2.2.2.2 -ip1 1.1.1.1

Если вы заметили, что я поменял местами порядок двух параметров.В этом преимущество именованных параметров, порядок не имеет значения.В примере повторного запуска используются позиционные параметры, в которых порядок имеет значение.

4 голосов
/ 26 января 2012

Вы передаете массив строк вашим функциям, аргументы передаются с использованием пробелов в powershell whatever "1.1.1.1" "2.2.2.2"

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