gpt4 book ai didi

powershell - 如何在 PowerShell 脚本中指定非位置参数?

转载 作者:行者123 更新时间:2023-12-03 21:23:28 24 4
gpt4 key购买 nike

我有以下 param在脚本开始时阻塞

param(
[string]$command,
[string]$version = "1.1.0"
)

这很好,只有我需要 $version不是一个位置参数,所以如果你输入
.\script.ps1 run argument

然后 $args应该包含“参数”和 $version应该是“1.1.0”。我知道我可以使用 C# Cmdlet 来完成它,但如果我可以将它作为单个脚本交付会更方便。

最佳答案

在 PowerShell 1.0 中,AFAIK 不可能。如果您不希望它是位置参数,则需要删除 $version 参数。

在 PowerShell 2.0 中,您可以通过创建一个高级函数来获得所需的内容,在该函数中您可以在 Parameter 属性中指定其他信息,例如:

function foo {    
param(
[Parameter(Mandatory=$true, Position = 0)]
[string]
$command,

[Parameter()]
[string]
$version = "1.1.0",

[Parameter(ValueFromRemainingArguments = $true)]
$remainingArgs
)

Process {
$OFS = ','
"command is $command"
"version is $version"
"remainingArgs are $remainingArgs"
}
}

foo run argument

关于powershell - 如何在 PowerShell 脚本中指定非位置参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2795582/

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