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

Delete files and folders 1 level down

我对清除共享文件夹有一些特定要求。共享文件夹叫"staff",下面是每次使用的个人文件夹(一共大概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 级后开始。

不递归枚举\fileserver\staff的子文件夹,排除"Bob"和"Brewster",然后枚举其余子文件夹的内容,递归删除

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

在确认该语句只会删除它应该删除的内容后,删除参数 -WhatIf