У меня есть функция с такими параметрами:
function foo {
Param(
[Parameter(Mandatory)]
[string]$foo,
[Parameter(Mandatory)]
[hashtable]$bar
)
}
, если я так ее называю, все работает нормально:
foo -foo "abc" -bar @{"a"="b"}
, но если я вызываю только foo
и PowerShellпросит указать значения для моих обязательных параметров, он не примет мою хэш-таблицу.
PS C:\Users\abc> foo
cmdlet foo at command pipeline position 1
Supply values for the following parameters:
foo: "abc"
bar: @{"a"="b"}
Cannot convert the "@{"a"="b"}" value of type "System.String" to type "System.Collections.Hashtable".
, почему PowerShell не принимает указанное мной значение?
Я также пытался написать это по-разному, например @{a=b}
, "a"="b"
, @{a=b;}
, @{"a"="b";}
и т. Д.