向下一级删除文件和文件夹

时间:2018-08-03 11:55:58

标签: powershell delete-file

我对清除共享文件夹有一些特定要求。共享文件夹称为“工作人员”,在此之下是每次使用的个人文件夹(总共可能有60个),里面充满了废话。

我需要删除每个用户文件夹中的废话(文件和子文件夹的混合),但保留用户文件夹本身。

我也希望根据名称排除一些用户文件夹。

当前看起来像这样:

\\fileserver\staff
   Bill
      Subfolder1
      Subfolder2
        File1
        File2
        File3
   Bob
      File1
      File2
      File3
   Brewster
      SubFolder1
          Subfolder2
          Subfolder3
            File1
   Brian
      Subfolder1
        File1
        File2
        File3

假设我要排除名为“ Bob”和“ Brewster”的用户文件夹,结果将如下所示

\\fileserver\staff
   Bill
      <empty>
   Bob
      FileA
      FileB
      FileC
   Brewster
      SubFolder1
        Subfolder2
          Subfolder3
            File1
   Brian
      <empty>

我一直在尝试Get-ChilditemRemove-Item,但是可以使recurse工作,也可以使exclude不能工作。另外,我不确定如何指定从“ Staff”向下1级后开始。

1 个答案:

答案 0 :(得分:2)

枚举\\fileserver\staff的子文件夹而无需递归(不包括“ Bob”和“ Brewster”),然后枚举其余子文件夹的内容并递归删除。

Get-ChildItem '\\fileserver\staff' -Directory -Exclude 'Bob', 'Brewster' |
    Get-ChildItem -Force |
    Remove-Item -Recurse -Force -WhatIf

在验证语句只会删除它应删除的内容后,删除参数-WhatIf