У меня есть следующий вызов команды
& ".\script1.ps1" -switch1 "$DBN" "$($Server[-1])" "$Creds" "$ConnectionID" "$ConnectionDataSource"
Я хочу сделать ConnectionID и Connection DataSource необязательными
Как я могу это сделать?
Эта команда работает, только если я ввожу что-то для ConnectionID и источника данных подключения. в противном случае они не будут работать, если я не введу ничего для этих двух параметров!
вот параметры в этом script1.ps1 (который я называю IN script2.ps1):
param(
[Parameter(Mandatory=$true)]
[string]$DBN,
[Parameter(Mandatory=$true)]
[string]$Server,
[Parameter(Mandatory=$false)]
[ValidateScript({![string]::IsNullOrEmpty($_.Trim())})]
[string]$Creds,
[Parameter(Mandatory=$false, HelpMessage="Enter a UserID for the connection")]
[ValidateScript({![string]::IsNullOrEmpty($_.Trim())})]
[string]$ConnectionID,
[Parameter(Mandatory=$false, HelpMessage="Enter a Data Source for the connection. Must enter the ConnectionID first")]
[ValidateScript({![string]::IsNullOrEmpty($_.Trim())})]
[string]$ConnectionDataSource
)
вот параметры в этом script2.ps1 (из которого я называю script1.ps1):
param(
[Parameter(Mandatory=$true)]
[string]$DBN,
[Parameter(Mandatory=$false, HelpMessage="Enter a UserID for the connection")]
[string]$ConnectionID,
[Parameter(Mandatory=$false, HelpMessage="Enter a Data Source for the connection. Must enter the ConnectionID first")]
[string]$ConnectionDataSource
)
Выполнение script1.ps1 без этих 2 входов работает просто отлично.
я запускаю это так:
PS> script1.ps1 DB1 Server1
поэтому я знаю, что должен что-то сделать здесь, в операторе вызова этого второго сценария, который я вызываю script1 из
Я ищу что-то вроде этого:
& ".\script1.ps1" -switch1 "$DBN" "$($Server[-1])" "$Creds" [optional]"$ConnectionID" [optional]"$ConnectionDataSource"