我可以知道,为什么字符串参数不会打印在以下powershell脚本中?
function Get-Name ( [string] $Username ) {
echo "user : $Username"
}
PS C:\> .\Get-Name.ps1 -username "test"
PS C:\>
Run Code Online (Sandbox Code Playgroud)
脚本文件Get-Name.ps1只定义函数Get-Name,不执行它.
使用dot-source运算符(.)让它在调用范围中定义函数,然后你可以执行函数本身:
PS C:\> . .\Get-Name.ps1
PS C:\> Get-Name -Username test
user : test
Run Code Online (Sandbox Code Playgroud)
或者,删除Lee_Dailey指出的脚本function Get-Name {和}部分脚本,此时脚本文件本身就成为参数化函数,然后您可以执行以下操作:
PS C:\> .\Get-Name.ps1 -Username test
user : test
Run Code Online (Sandbox Code Playgroud)
请参阅about_Scripts帮助文件,特别是有关脚本范围和点源的部分