2013-06-20 2 views
4

У меня есть проблема, похожая на THIS ONEКак проверить параметры функции PowerShell, позволяющие пустые массивы?

Я передаю в функцию 3 массивов, и я проверить тип объекта таким образом

function _TEST { 
[CmdletBinding()] 
param (
    [parameter(mandatory=$true)] 
    [array]$Path, 
    [parameter(mandatory=$true)] 
    [array]$RW, 
    [parameter(mandatory=$true)] 
    [array]$RO 
) 
process { 
    # my code 
} 

Это работает, если я не передаю функционировать массив без элементов, в этом случае он возвращает эту ошибку _TEST : Cannot bind argument to parameter 'Path' because it is an empty collection.

Есть ли способ решить проблему, подобную [AllowEmptyString()] в связанном вопросе, или мне нужно написать собственный код для проверки входной переменной?

ответ

14

Попробуйте это:

param (
    [parameter(mandatory=$true)] 
    [AllowEmptyCollection()] 
    [array]$Path 
) 

Ссылка:

Parameter Validation Attributes

+0

Используя этот код это позволяет также объекты отличаются от массива: '_test @()' -> нет ошибок; '_TEST" строка "' -> нет ошибок – Naigel

Смежные вопросы