【发布时间】:2011-03-17 06:25:27
【问题描述】:
使用 PowerShell 我可以通过以下命令获取目录:
Get-ChildItem -Path $path -Include "obj" -Recurse | `
Where-Object { $_.PSIsContainer }
我更喜欢写一个函数,这样命令的可读性就更好了。例如:
Get-Directories -Path "Projects" -Include "obj" -Recurse
除了优雅地处理-Recurse之外,以下函数正是这样做的:
Function Get-Directories([string] $path, [string] $include, [boolean] $recurse)
{
if ($recurse)
{
Get-ChildItem -Path $path -Include $include -Recurse | `
Where-Object { $_.PSIsContainer }
}
else
{
Get-ChildItem -Path $path -Include $include | `
Where-Object { $_.PSIsContainer }
}
}
如何从我的 Get-Directories 函数中删除 if 语句,或者这是更好的方法吗?
【问题讨论】:
-
考虑使用 -Filter 而不是 -Include ,除非您需要包含多个项目。对于 *.txt 之类的内容,-Filter 可以明显更快。或者您可以随时添加两者。
标签: powershell directory get-childitem