web-dev-qa-db-ja.com

スイッチパラメーターを別のPowerShellスクリプトに渡す方法

スイッチパラメーターを持つ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スクリプトに渡すにはどうすればよいですか?

$VHDL2008compile-tool1.ps1のパラメーターをbool型に変換したくないのは、両方のスクリプトがフロントエンドスクリプト(ユーザーが使用)であるためです。後者は、複数のcompile-tool*.ps1スクリプトの高レベルラッパーです。

33
Paebbels

コロン構文を使用して、スイッチで$trueまたは$falseを指定できます。

compile-tool1.ps1 -VHDL2008:$true
compile-tool1.ps1 -VHDL2008:$false

したがって、実際の値を渡すだけです。

compile-tool1.ps1 -VHDL2008:$VHDL2008
51
Martin Brandl

試して

compile-tool1.ps1 -VHDL2008:$VHDL2008.IsPresent 
7
whatever