Pae*_*els 36 powershell parameter-passing
我有两个PowerShell脚本,它们有switch参数:
编译tool1.ps1:
[CmdletBinding()]
param(
[switch]$VHDL2008
)
Write-Host "VHDL-2008 is enabled: $VHDL2008"
Run Code Online (Sandbox Code Playgroud)
compile.ps1:
[CmdletBinding()]
param(
[switch]$VHDL2008
)
if (-not $VHDL2008)
{ compile-tool1.ps1 }
else
{ compile-tool1.ps1 -VHDL2008 }
Run Code Online (Sandbox Code Playgroud)
如何在不编写大型if..then..else或case语句的情况下将switch参数传递给另一个PowerShell脚本?
我不想在参数转换$VHDL2008的compile-tool1.ps1类型为bool,因为,这两个脚本是前端脚本(由用户使用).后者是多个compile-tool*.ps1脚本的高级包装器.
Mar*_*ndl 56
您可以使用冒号语法指定$true或$false在交换机上:
compile-tool1.ps1 -VHDL2008:$true
compile-tool1.ps1 -VHDL2008:$false
Run Code Online (Sandbox Code Playgroud)
所以只需传递实际值:
compile-tool1.ps1 -VHDL2008:$VHDL2008
Run Code Online (Sandbox Code Playgroud)
小智 7
尝试
compile-tool1.ps1 -VHDL2008:$VHDL2008.IsPresent
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13703 次 |
| 最近记录: |