我需要获取符合特定条件的隐藏和可见目录,我希望在同一通话中进行操作,而不是重复搜索隐藏和隐藏目录。对于可见项目。显然,GetChildItem
不能使用-Attribute
或-Hidden
参数。
我无法使用-Attribute
参数来实现我想要的方式:
Get-ChildItem -Recurse -Directory -Attributes Hidden+!Hidden -Path $this.searchPath | ForEach-Object {
if ($_.Name -eq $targetFeatureToSearch)
{
$result.Add([IO.Directory]::GetParent($_.FullName).FullName);
}
}
如果我使用-Hidden
,则搜索中仅包含隐藏的项目。如果未使用,则搜索中仅包含可见项。
Get-ChildItem -Recurse -Directory -Path $this.searchPath | ForEach-Object {
if ($_.Name -eq $targetFeatureToSearch)
{
$result.Add([IO.Directory]::GetParent($_.FullName).FullName);
}
}
出于效果的原因,是否可以合并两种搜索?
答案 0 :(得分:5)
如果您想Get-ChildItem
同时显示可见和隐藏的项目,则必须{@ {1}}作为@LotPings注释。
但是,如果您想做任何事情-Force
,for performance reasons?
可能不是一个好方法。
Get-ChildItem
很快就会吐出全名列表作为文本。这些选项表示:
它也包括隐藏的东西。
[编辑:TheIncorrigible1认为robocopy $this.searchPath $this.searchPath /E /L /FP /NS /NC /NJH /NJS
是类方法的一个自动变量,用于引用当前实例,如果在PowerShell函数中使用它,那是一种不好的做法。如果您实际上是在一种方法中使用它,那么我不会编辑上面的代码,因此我的代码看起来像您的代码。]