使用powershell将文件/文件夹排除添加到递归文件搜索

时间:2015-07-28 20:20:08

标签: file powershell

处理脚本以获取服务器上的所有文件并将其属性转换为CSV。下面工作正常,但是,我想添加一些文件和文件夹排除。

对于文件夹,我想跳过cookies文件夹USERS \ name \ Personal \ sysdata \ cookies

对于文件,我想排除.lnk和.url文件。

谢谢。

$arr = @()
gci "D:\COMPANY\USERS\a, user" -recurse 
| ? {$_.PSIsContainer -eq $False} 
| % {
    $obj = New-Object PSObject
    $obj | Add-Member NoteProperty Directory $_.DirectoryName
    $obj | Add-Member NoteProperty Name $_.Name
    $obj | Add-Member NoteProperty MB ("{0:N3}" -f ($_.Length/1MB))
    $obj | Add-Member NoteProperty created $_.creationtime
    $obj | Add-Member NoteProperty LastAccessed $_.LastAccessTime
    $obj | Add-Member NoteProperty LastMofified $_.LastWriteTime
    $obj | Add-Member NoteProperty Extension $_.Extension
    $obj | Add-Member NoteProperty Owner ((Get-ACL $_.FullName).Owner)

    $arr += $obj
    }
$arr | Export-CSV -notypeinformation "C:\filesTest.csv"

1 个答案:

答案 0 :(得分:2)

它使用正则表达式,所以它不是超级快,但尝试在第3行附加过滤器:

| ? {$_.PSIsContainer -eq $False -and $_.Extension -notin ".lnk",".url" -and $_.Directory -notmatch ".*USERS\\.*\\Personal\\sysdata\\cookies"}