我想根据 Switch Condition Like 提出一个论点 Mandatory
param(
[string]$para1,
[switch]$choice="Upgrade"
[string]$paraUpg
[string]$paraInstall
)
现在如果选择是Upgrade
我想$paraUpg
强制,如果$choice
是Install
那么$paraInstall
必须是强制的
我想根据 Switch Condition Like 提出一个论点 Mandatory
param(
[string]$para1,
[switch]$choice="Upgrade"
[string]$paraUpg
[string]$paraInstall
)
现在如果选择是Upgrade
我想$paraUpg
强制,如果$choice
是Install
那么$paraInstall
必须是强制的
您可以尝试以下方法。设置所有参数,如果$choice="Upgrade"
and$paraUpg
为 null 或为空,则抛出异常。类似地重复$choice="Install"
。然后,您可以根据选择的参数有条件地选择参数检查后要执行的操作。
param(
[string]$para1,
[string]$choice="Upgrade",
[string]$paraUpg,
[string]$paraInstall
)
#check if choice is "Upgrade" and paraUpg is empty
if(($choice -eq "Upgrade") -and ([string]::IsNullOrEmpty($paraUpg)))
{
throw "paraUpg is a required parameter"
}
#check if choice is "Install" and paraInstall is empty
elseif (($choice -eq "Install") -and ([string]::IsNullOrEmpty($paraInstall)) )
{
throw "paraInstall is a required parameter"
}
首先,它PowerShell
与 Windows 7 一起作为其添加的实用程序之一。
到目前为止,您还没有详细说明您做了什么。我怀疑你想要这样的东西。
在您的PowerShell
脚本中最好在顶部声明参数。
param([string]$UserName, [string]$Password, [string]$MachineName)
在需要时在您的 powershell 脚本中使用这些 parmas。现在创建一个批处理文件,您可以从中将值传递给这些参数,如下所示。
@powershell -ExecutionPolicy Unrestricted -FILE YourPowerShellScript.ps1 "UserName" "Password" "MachineName"
我已经在批处理文件中指定了策略权限,因此您不必每次在不同机器上运行脚本时都提及。希望能帮助到你。