如何删除文件夹中的特定文件,但不能删除子文件夹?

时间:2019-05-28 11:47:31

标签: powershell

我的文件夹结构很大,我只想从主文件夹中删除某些特定文件,而保留子文件夹不变。

示例:

Folder A/Sub-folderB/

现在,我只想从Folder A删除文件,这应该持续到最后一个文件夹N

这是我尝试过的代码,

Get-Childitem C:\serverfolders\users\* | Where-Object {-Not $_.PSIsContainer} | Foreach-Object {Remove-Item $_.FullName}

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:3)

只需添加“ -File”选项:)

  Get-Childitem C:\serverfolders\users -File | Remove-Item -force

您可以在Get-ChildItem help on MS

上阅读更多内容

答案 1 :(得分:0)

您可以使用-Depth的{​​{1}}参数来限制要包含在递归中的子目录级别的数量。在您的情况下,您只需要1级深度即可完整保留所有子文件夹。

Get-ChildItem

您说您仅想删除一些特定文件,为此,您可以使用
Get-ChildItem -Path 'C:\serverfolders\users' -Depth 1 -File -Recurse | Remove-Item -WhatIf 参数 Get-ChildItem像这样:

-Include

对屏幕显示的结果满意后,请卸下Get-ChildItem -Path 'C:\serverfolders\users' -Depth 1 -File -Recurse -Include '*.txt', '*.pdf', '*.doc*' | Remove-Item -WhatIf 开关