Pio*_*r L 1 powershell flags conditional powershell-5.0
有一个叫我PowerShell脚本变量$IncludeSubfolders(或0或1)
根据它的值,我想Get-ChildItem在有或没有-Recurse选项的情况下调用方法.
目前,我的代码如下所示:
if($IncludeSubfolders) {
$Files = Get-ChildItem $RootPath -Name $FileMask -Recurse
} else {
$Files = Get-ChildItem $RootPath -Name $FileMask
}
Run Code Online (Sandbox Code Playgroud)
我想避免这种分支,如果有或没有它,只需Get-ChildItem要用一行代码调用.-Recurse$IncludeSubfolders10
这可以实现吗?怎么样?
Powershell版本5.0.10586.117
$IncludeSubfolders 理想情况下应该是一个布尔值,而不是一个整数,但它可以很容易地转换.
即使你必须保持整数,代码也是一样的.
$Files = Get-ChildItem $RootPath -Name $FileMask -Recurse:$IncludeSubfolders
Run Code Online (Sandbox Code Playgroud)
因为-Recurse是一个Switch参数,它是一种特殊类型的布尔值,其中不需要显式值.现在使它成为现实,缺席使其成为虚假.但是所有切换参数也可以采用显式值,在其后面直接使用冒号.
如果试图在表达式中使用非布尔值,其中一个布尔预计,PowerShell的将尽力凝聚该值布尔值,在这种情况下0将成为$false同时1将成为$true.
| 归档时间: |
|
| 查看次数: |
676 次 |
| 最近记录: |