2017-09-29 55 views
0

目前我试图删除文件夹结构删除文件与排除

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

该脚本删除文件夹内的所有文件,除了subfolder1,而不是删除文件夹内的文件。我没有得到的工作是排除“subfolder1”内的文件。

我想这样的事情

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

你说你只是想继续在子文件夹,但你想从一个特定的子文件夹中保存文件。请说明你做了什么,不想删除。 –

+0

我编辑了第一篇文章。很抱歉对于这个误会。 –

+0

“subfolder1”总是直接位于根文件夹下,或者它可以位于文件夹树中的任何位置? –

回答

1

既然你要排除的子文件夹总是直接下的根文件夹我会做处理2个步骤:

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

事情是这样的:

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

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

这个工程就像打算。谢谢! –