powershell - Get-ChildItem递归作为PowerShell中的参数

标签 powershell powershell-1.0

我正在寻找一个可以切换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/

相关文章:

powershell - 尝试覆盖隐藏文件时权限被拒绝

powershell - PowerShell输出为HTML

powershell - 输出的目录数据不正确

c# - 在 Pipeline.Invoke 抛出后在 C# 中捕获 Powershell 输出

powershell - 我可以使用 PowerShell 1.0 列出进程及其 PID 和命令行吗?

batch-file - 在 Windows 2008 服务器中运行 powershell 脚本时出现 Windows 任务计划程序问题

powershell - 缺少PowerShell命令?

validation - ValidationSet 上的 Powershell 自动完成

powershell - 使用 Powershell 对 XML 进行排序