我正在寻找一种让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 - 显示默认值的powershell强制参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39878202/