【发布时间】:2021-03-03 09:51:05
【问题描述】:
我想搜索 PC 中的所有文件,但我想排除一些文件夹。
我目前正在使用Where-Object { ($_.FullName -notmatch $excludepath),但问题是它在这些路径中查找然后过滤它。我希望我的程序根本不查找某些路径,因为它会占用大量时间!
编辑:这是我正在使用的代码。我想在 PC 上搜索所有文件或使用某些特定过滤器(例如具有特定名称、扩展名的文件)并提供完全排除路径的选项。这段代码做了所有这些,但在排除路径的同时,它在路径中搜索,然后使用 Where-Object { ($_.FullName -notmatch $excludepath) 过滤掉。因为 C 盘太大,我希望我的程序不要在提到的某些多路径中查找,而不是在它们中搜索然后过滤。
$Filename = "img"
$IncludeExt = "*.jpeg"
$excludepath = "^C:\\Windows" ,"^C:\\Program Files"
$GCIArgs = @{Path = $Drives.Root
Recurse = $True
}
If ($Null -ne $IncludeExt) {
$GCIArgs.Add("Include",$IncludeExt)
}
Get-ChildItem @GCIArgs | Where-Object { ($_.FullName -notmatch $excludepath) -and ($Ignore -notcontains $_.Extension) -and ($_.BaseName -match $Filename )} |
foreach{
$Item = $_.Basename
$Path = $_.FullName
$Type = $_.Extension
$Modified=$_.LastWriteTime
$Age = $_.CreationTime
$Type = &{if($_.PSIsContainer){"Folder"}else{$_.Extension}}
$Path | Select-Object @{n="Name";e={$Item}},
@{n="Created";e={$Age}},
@{n="filePath";e={$Path}},
@{n="Modified";e={$Modified}},
@{n="Folder/File";e={$Type}}
}| Export-Csv D:\SF.csv -NoTypeInformation
【问题讨论】:
-
哪些路径?也许向您展示当前的代码并描述它有什么问题
标签: powershell file search