Как передать параметр переключателя в другой PowerShell script?
У меня есть два сценария PowerShell, которые имеют параметры переключения:
компиляции tool1.ps1:
[CmdletBinding()]
param(
[switch]$VHDL2008
)
Write-Host "VHDL-2008 is enabled: $VHDL2008"
compile.ps1:
[CmdletBinding()]
param(
[switch]$VHDL2008
)
if (-not $VHDL2008)
{ compile-tool1.ps1 }
else
{ compile-tool1.ps1 -VHDL2008 }
Как передать параметр переключателя другому PowerShell script, не записывая большие выражения if..then..else
или case
?
Я не хочу преобразовывать параметр $VHDL2008
из compile-tool1.ps1
в тип bool
, потому что оба сценария - это интерфейсные скрипты (используемые пользователями). Последний является высокоуровневой оболочкой для нескольких сценариев compile-tool*.ps1
.
Ответы
Ответ 1
Вы можете указать $true
или $false
на коммутаторе с использованием синтаксиса двоеточия:
compile-tool1.ps1 -VHDL2008:$true
compile-tool1.ps1 -VHDL2008:$false
Итак, просто передайте фактическое значение:
compile-tool1.ps1 -VHDL2008:$VHDL2008
Ответ 2
Try
compile-tool1.ps1 -VHDL2008:$VHDL2008.IsPresent