使用排除从文件夹结构中删除文件

Delete files from folder structure with exclude

目前我正在尝试删除文件夹结构中的文件

root
|
|__subfolder1 (includes files)
|
|__subfolder2 (includes files)
|
etc

脚本必须删除子文件夹中除 subfolder1 之外的所有文件,而不删除子文件夹。我没有开始工作的是排除 "subfolder1".

中的文件

我正在尝试这样的事情

Get-ChildItem -Path E:\root -Include *.* -File -Recurse -Exclude E:\root\subfolder1 | foreach {$_.Delete()}

由于您要排除的子文件夹始终直接位于根文件夹下,因此我将分两步进行处理:

  • 枚举根文件夹的子文件夹并排除subfolder1
  • 枚举剩余文件夹中的所有文件并将其删除。

像这样:

$root     = 'root'
$excludes = 'subfolder1'

Get-ChildItem $root -Directory -Exclude $excludes | ForEach-Object {
    Get-ChildItem $_.FullName -File -Recurse -Force | Remove-Item -Force
}