スイッチパラメーターを持つ2つのPowerShellスクリプトがあります。
compile-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 }
大きなif..then..else
またはcase
ステートメントを記述せずに、スイッチパラメーターを別のPowerShellスクリプトに渡すにはどうすればよいですか?
$VHDL2008
のcompile-tool1.ps1
のパラメーターをbool
型に変換したくないのは、両方のスクリプトがフロントエンドスクリプト(ユーザーが使用)であるためです。後者は、複数のcompile-tool*.ps1
スクリプトの高レベルラッパーです。
コロン構文を使用して、スイッチで$true
または$false
を指定できます。
compile-tool1.ps1 -VHDL2008:$true
compile-tool1.ps1 -VHDL2008:$false
したがって、実際の値を渡すだけです。
compile-tool1.ps1 -VHDL2008:$VHDL2008
試して
compile-tool1.ps1 -VHDL2008:$VHDL2008.IsPresent