gpt4 book ai didi

arrays - 具有可发现的参数默认值的Powershell脚本?

转载 作者:行者123 更新时间:2023-12-02 23:28:54 25 4
gpt4 key购买 nike

我已经为简单的启动或停止以及服务数组编写了一个powershell脚本。

这是我当前的脚本:

param([Switch] $Stop, [Switch] $Start) 

$services = @(
"Service1",
"Service2",
"Service3",
"etc"
)

if ($Start -eq $true) {
echo "Starting services..."
get-service $services | start-Service
}

if ($Stop -eq $true) {
echo "Stopping services..."
get-service $services | stop-Service
}

echo "Done."

该命令只是 Services -stopServices -start
我喜欢的参数 -stop-start是可发现的(单击选项卡时)。

当前,这将停止或启动阵列中的所有服务,我还想选择停止或启动特定服务。

如果我修改参数并输入服务名称,这很容易。

但是我真正想做的是,这些服务名称是否要固定在我的阵列中,并以相同的方式可被发现,以便点击选项卡将通过可用的默认值?

结果可能是这样的:
Services -stop -service:Service1
这可能吗?要将-service限制为我的阵列中的服务?

最佳答案

您可以使用ValidateSet属性来执行此操作,例如:

param(
[Parameter()]
[Switch]
$Stop,

[Parameter()]
[Switch]
$Start,

[Parameter()]
[ValidateSet("Service1","Service2","Service3","etc")]
[string[]]
$Service
)

...

您将像这样调用制表符完成:
Services -stop -service <tab>

关于arrays - 具有可发现的参数默认值的Powershell脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22059746/

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