【问题标题】:Powershell - Remove files inside the filtered folderPowershell - 删除过滤文件夹中的文件
【发布时间】:2021-03-28 08:33:19
【问题描述】:

我试图弄清楚如何从 Get-Childitem cmdlet 中删除多个过滤文件夹中的文件。

我想要的是在特定路径(Get-Childitem)中找到所有名为“Cache”的文件夹。 然后删除该缓存文件夹的文件。

Powershell 版本: 5.1

下面的代码可能不起作用,可能是错误的通配符选择等?

Get-ChildItem "$env:LOCALAPPDATA\" -recurse -Filter "Cache\*" | foreach ($_) {remove-item $_.fullname -WhatIf -recurse}

希望有人可以帮助我,我在这方面有点菜鸟:)

谢谢!

【问题讨论】:

    标签: powershell file caching filter get-childitem


    【解决方案1】:

    由于您使用的是-Recurse 标志,因此您不需要在过滤器中使用\。以下过滤器将为您提供包含单词缓存的所有项目(包括文件和目录)(如 blacachebla)

    Get-ChildItem $env:LOCALAPPDATA -recurse -Filter "*Cache*" 
    

    或者您可以使用-ErrorAction 开关在无法找到所有名为“缓存”的文件夹和文件时静默继续。

    Get-ChildItem $env:LOCALAPPDATA -recurse -Filter "Cache" -ErrorAction SilentlyContinue
    

    【讨论】:

      【解决方案2】:

      谢谢你的解释。

      使用-Filter "*Cache*" 不是我需要的。我想要确切的名称为 Cache 的文件夹。

      如果我使用的是Get-ChildItem $env:LOCALAPPDATA -recurse -Filter "Cache" -ErrorAction SilentlyContinue | % { $_.FullName }

      输出例如:

      C:\Users\xxx\xxxxx\Cache
      C:\Users\x\xxxxx\Cache
      C:\Users\xx\xxx\Cache
      C:\Users\x\xxx\Acrobat\Cache
      

      我想从那里删除所有具有该名称缓存的文件夹中的文件和文件夹,我只是从Get-ChildItem中过滤

      内部示例:C:\Users\x\xxx\Acrobat\Cache 有文件和文件夹,如 data_0、data_1、data_2、GPUCache(folder) 等。我想删除它们,但每个找到的缓存文件夹 (@987654325 @)

      希望你能理解我的想法。

      谢谢!

      【讨论】:

        【解决方案3】:

        经过一番挖掘,我找到了解决方案。

        以下代码对我有用:

        $base_dir = "$env:LOCALAPPDATA"
        $name     = 'Cache'
        
        Get-ChildItem $base_dir -Recurse -Force | Where-Object {
            $_.PSIsContainer -and
            $_.Name -eq $name
        } | Select-Object -Expand FullName | ForEach-Object {
            Remove-Item "$_\*" -Recurse -whatif
        }
        

        (删除 -whatif,删除文件)

        【讨论】:

          猜你喜欢
          • 2021-03-12
          • 2021-12-02
          • 2013-03-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多