无法使用Set-Variable设置变量的Description属性
解决PowerShell变量Description属性未设置的问题
你的问题根源在于作用域:Set-Variable默认会在当前函数的作用域内创建/修改变量,而不是你期望的脚本级作用域。所以你的Tagit函数实际上是在函数内部创建了同名变量并设置了Description,而脚本里的原始变量完全没被改动。
修复方案1:指定-Scope参数
修改Tagit函数,给Set-Variable加上-Scope Script参数,强制操作脚本级作用域的变量:
Function Tagit([string[]]$params){ foreach($param in $params){ Set-Variable -name $param -Description "Script" -Scope Script } }
修复方案2:通过Get-Variable获取变量实例修改
另一种方式是先获取脚本级的变量对象,直接修改它的Description属性,这种方式更直观:
Function Tagit([string[]]$params){ foreach($param in $params){ $var = Get-Variable -Name $param -Scope Script $var.Description = "Script" } }
验证修改是否生效
你可以用下面的命令检查变量的Description属性:
Get-Variable filein, RepsToRun | Select-Object Name, Description
执行后就能看到这两个变量的Description已经被设置为"Script"了。
内容的提问来源于stack exchange,提问作者Graham Gold
相关产品推荐
相关产品推荐

