我可以知道,为什么在下面的powershell脚本中没有打印string参数吗?
function Get-Name ( [string] $Username ) {
echo "user : $Username"
}
PS C:\> .\Get-Name.ps1 -username "test"
PS C:\>
答案 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_Dailey的function 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