我正在寻找一种方法让 PowerShell 脚本请求一个参数,该参数需要是强制性的,但显示一个默认值,例如:
.\psscript
Supply values for the following parameters:
parameter1[default value]:
parameter2[1234]:
我想要求输入但提供一些默认值。
如果我使用强制选项,它会很好地要求值,但不会显示默认值或处理给定值。如果我没有强制要求,那么 PowerShell 根本不会要求该值。
这是我尝试过的一些脚本示例:
[CmdletBinding()]
Param(
[parameter(Mandatory=$true)] $SqlServiceAccount = $env:computername + "_sa",
[parameter(Mandatory=$true)] $SqlServiceAccountPwd
)
如果我只是在第一个参数上按 Enter 键,此脚本会询问参数,但不会显示或处理默认值。
[CmdletBinding()]
Param(
[parameter(Mandatory=$false)] $SqlServiceAccount = $env:computername + "_sa",
[parameter(Mandatory=$true)] $SqlServiceAccountPwd
)
这个脚本不要求第一个参数,而是处理默认值。
最佳答案
这是一个可能有帮助的简短示例:
[CmdletBinding()]
Param(
$SqlServiceAccount = (Read-Host -prompt "SqlServiceAccount ($($env:computername + "_sa"))"),
$SqlServiceAccountPwd = (Read-Host -prompt "SqlServiceAccountPwd")
)
if (!$SqlServiceAccount) { $SqlServiceAccount = $env:Computername + "_sa" }
...
关于显示默认值的 powershell 强制参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39878202/