2017-09-29 209 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

這個工程就像打算。謝謝! –