Печать аргумента в powershell - PullRequest
0 голосов
/ 04 ноября 2018

Могу ли я знать, почему строковый аргумент не печатается в следующем скрипте powershell?

function Get-Name ( [string] $Username ) {
    echo "user : $Username"
}


PS C:\> .\Get-Name.ps1 -username "test"
PS C:\>

Ответы [ 2 ]

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

Файл сценария Get-Name.ps1 только определяет функцию Get-Name, она не выполняется.

Используйте оператор точечного источника (.), чтобы он определил функцию в области вызова, а затем вы можете выполнить саму функцию:

PS C:\> . .\Get-Name.ps1
PS C:\> Get-Name -Username test
user : test

Либо удалите часть скрипта function Get-Name { и } , на что указывает Lee_Dailey , после чего файл скрипта сам по себе становится параметризованной функцией, и вы можете выполнить:

PS C:\> .\Get-Name.ps1 -Username test
user : test

См. about_Scripts файл справки , особенно раздел о области действия сценария и точечного поиска

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

проблема в том, что вы определяете функцию , а не вызываемый скрипт. [ ухмылка ] это будет работать ...

Param ([string] $Username)

echo "user : $Username"

вот пример вызова выше ...

. .\Func_Get-Name.ps1 -username 'tutu'

вывод ...

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