在Powershell中打印参数

时间:2018-11-04 19:24:20

标签: powershell syntax

我可以知道,为什么在下面的powershell脚本中没有打印string参数吗?

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


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

2 个答案:

答案 0 :(得分:5)

仅脚本文件Get-Name.ps1 定义函数Get-Name,它不执行它。

使用点源运算符(.)在调用范围内定义函数,然后可以执行函数本身:

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

或者,删除脚本as pointed out by Lee_Daileyfunction Get-Name {}部分,这时脚本文件本身成为参数化函数,然后您可以执行以下操作:

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

请参阅about_Scripts help file,尤其是有关script scope and dot sourcing的部分

答案 1 :(得分:3)

问题是您定义了 function ,而不是可调用的脚本。 [咧嘴]这可以工作...

Param ([string] $Username)

echo "user : $Username"

这是调用上述方法的示例...

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

输出...

user : tutu