我正在寻找一个可以切换cmdlet Get-ChildItem递归功能的功能。
作为一个非常基本的示例:
...
param
(
[string] $sourceDirectory = ".",
[string] $fileTypeFilter = "*.log",
[boolean] $recurse = $true
)
Get-ChildItem $sourceDirectory -recurse -filter $fileTypeFilter |
...
如何有条件地将
-recurse
标志添加到Get-ChildItem,而不必诉诸某些if/else语句?我认为也许可以用
-recurse
参数代替Get-ChildItem语句中的$recurseText
(如果$ recurse为true,则设置为“-recurse”),但这似乎不起作用。
最佳答案
这里有几件事。首先,您不想使用[boolean]作为递归参数的类型。这要求您在脚本上传递Recurse参数的参数,例如-Recurse $true
。您想要的是一个[switch]参数,如下所示。另外,将开关值转发到Get-ChildItem的-Recurse参数时,请使用:
,如下所示:
param (
[string] $sourceDirectory = ".",
[string] $fileTypeFilter = "*.log",
[switch] $recurse
)
get-childitem $sourceDirectory -recurse:$recurse -filter $fileTypeFilter | ...
关于powershell - Get-ChildItem递归作为PowerShell中的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1862554/