【问题标题】:adding file/folder exclusions to recursive file search with powershell使用 powershell 将文件/文件夹排除项添加到递归文件搜索
【发布时间】:2015-07-28 20:20:08
【问题描述】:

编写脚本以获取服务器上的所有文件并将其属性放入 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"

【问题讨论】:

    标签: file powershell


    【解决方案1】:

    它使用正则表达式,因此速度不是很快,但请尝试在第 3 行附加过滤器:

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

    【讨论】:

    • 谢谢。收到此错误You must provide a value expression on the right-hand side of the '-' operator. At C:\Users\jg\Desktop\CBFleetFiles.ps1:2 char:110 + gci "D:\USER_FILES\Company\USERS\A, test" -recurse | ? {$_.PSIsContainer -eq $False -and $_.Extensi on - <<<< notin ".lnk",".url" -and $_.Directory -notmatch ".*USERS\\.*\\Personal\\sysdata\\cookies"} | % { + CategoryInfo : ParserError: (:) [], ParseException + FullyQualifiedErrorId : ExpectedValueExpression
    • nm,它的 -ne 而不是 -notin。这适用于跳过文件夹,但仍然显示 URL 和 LNK 文件。
    • 我通过分离 $_.Extension -ne ".lnk" -and $_.Extension -ne ".url" 得到它。麻烦,但有效。关于将扩展放入可以调整的数组中的想法?因此,如果在一份报告中我也想取出 .ini 文件,但第二天,我想要它们,只需编辑数组?想法?
    • 正常创建数组即可。 $var =@("vslue1","value2","value3");然后使用 -notin $var 正常评估它
    • 添加了排除数组。 $exclusions = @(".lnk",".url") 然后在代码中评估为 $_.extension -ne $exclusions 但它仍然在输出中包含这些扩展。我没有正确评估吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-30
    • 2012-10-28
    • 1970-01-01
    • 2012-11-19
    • 2011-01-12
    • 1970-01-01
    相关资源
    最近更新 更多