gpt4 book ai didi

powershell - 为什么使用 Get-Variable 访问参数变量的属性只能在 ISE 中第一次工作?

转载 作者:行者123 更新时间:2023-12-05 00:52:26 24 4
gpt4 key购买 nike

感谢 StackOverflow 的伟大人士,我们收到了非常好的 answer关于如何检索 ValidateSet 中定义的值内Param()脚本或函数的子句:

Param (
[ValidateSet('Startup', 'Shutdown', 'LogOn', 'LogOff')]
[String]$Type = 'Startup'
)

(Get-Variable Type).Attributes.ValidValues

唯一困扰我的是这段代码只适用于 第一次 当您在 PowerShell ISE 中运行它时。 第二次 你运行它,没有生成输出。

有没有办法让它一直工作?我们在 Win 7 和 Win 2012 上使用 PowerShell 4.0。

最佳答案

首先,此行为仅在 PowerShell ISE 中可见(它在外部完美运行)。这可能是由 following post 解释的.

阅读它,您会发现有一个解决方法:

Param (
[ValidateSet('Startup', 'Shutdown', 'LogOn', 'LogOff')]
[String] $Type = 'Startup'
)

(Get-Variable Type).Attributes.ValidValues

# Do your stuff here

Remove-Variable Type

关于powershell - 为什么使用 Get-Variable 访问参数变量的属性只能在 ISE 中第一次工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42712595/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com