我需要为我们的 Pro/Engineer CAD 系统生成一个配置文件。我需要我们服务器上特定驱动器的文件夹的递归列表。但是,我需要排除其中包含“ARCHIVE”的任何文件夹,包括各种不同的情况。
我写了以下内容,除了不排除文件夹外,它可以工作!
$folder = "T:\Drawings\Design\*"
$raw_txt = "T:\Design Projects\Design_Admin\PowerShell\raw.txt"
$search_pro = "T:\Design Projects\Design_Admin\PowerShell\search.pro"
$archive = *archive*,*Archive*,*ARCHIVE*
Get-ChildItem -Path $folder -Exclude $archive -Recurse | where {$_.Attributes -match 'Directory'} | ForEach-Object {$_.FullName} > $search_pro
My KISS跳过某些文件夹的方法是链接Get-ChildItem
来电。这会排除根级文件夹,但不排除更深层次的文件夹(如果您需要的话)。
Get-ChildItem -Exclude folder1,folder2 | Get-ChildItem -Recurse | ...
- Start 排除你不想要的文件夹
- 然后执行递归的搜索时排除不需要的文件夹。
我喜欢这种方法的原因是它简单易记。如果您不想在第一次搜索中混合文件夹和文件,则需要过滤器。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)