作者:可惜偏偏孤独一个小姐_448 | 来源:互联网 | 2022-12-08 17:40
我需要获取符合特定条件的隐藏和可见目录,并且我想在同一个调用中执行此操作,而不是重复搜索隐藏和可见项目.显然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);
}
}
出于性能原因,有没有办法将两种搜索结合起来?
1> Tessellating..:
如果你想Get-ChildItem
向你展示可见和隐藏的项目,你必须-Force
像@LotPings评论一样.
但如果你想做任何事情for performance reasons?
,Get-ChildItem
可能不是一个好方法.
robocopy $this.searchPath $this.searchPath /E /L /FP /NS /NC /NJH /NJS
将很快地以文本的形式吐出全名列表.选项意味着:
来源和"目的地",但它不会复制或移动任何东西
/ E - 递归包括空目录
/ L - 仅列出文件和文件夹,不做任何复制或移动
/ FP - 显示文件和文件夹的完整路径
/ NS/NC - 输出中没有大小,没有'class'(文件与目录)指示符
/ NJH/NJS - 没有工作标题或摘要,只是一个简单的内容列表
它确实包括隐藏的东西.
[编辑:TheIncorrigible1注释$this
是类方法的自动变量,用于引用当前实例,如果您在PowerShell函数中使用它,这是一种不好的做法.我不会编辑上面的代码,如果你真的在一个方法中使用它,所以我的代码看起来像你的.]
我想指出`$ this`是一个自动变量,除非这是一个类方法,否则它是有害的.