繁体   English   中英

Powershell:删除包含特定文件的文件夹

[英]Powershell: Delete folder with specific file in it

我正在尝试在 powershell 中创建一个脚本来删除 C:\\Temp 中包含 *.sr_processed 文件的所有文件夹。

我已经有了这个,但这只会删除文件而不是它所在的文件夹。

Get-ChildItem -Path C:\Temp -Include *.sr_processed -File -Recurse | foreach { $_.Delete()}

你告诉它删除文件。 要删除文件夹,请执行以下操作:

Get-ChildItem -Path C:\Temp -Include *.sr_processed -File -Recurse | foreach { Remove-Item –path $_.Directory.Fullname}

如果文件夹中有多个.sr_processed文件,它可能会尝试多次删除它。 通常,删除您正在使用的文件夹是不好的做法。 所以更好的主意是将文件夹收集在列表/哈希中并在最后删除它们。

那看起来像:

# declare array
$foldersToDelete = @()
# fill array with folder names
Get-ChildItem -Path C:\Temp -Include *.sr_processed -File -Recurse | foreach { $foldersToDelete += $_.Directory.Fullname}
# sort and make unique
$foldersToDelete = $foldersToDelete | Sort-Object | Get-Unique
# delete folders
$foldersToDelete | Remove-Item –path $_

这是从记忆中键入的,因此您可能需要对其进行调整。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM