Powershell - 删除包含具有特定FileDescription的文件的文件夹?

时间:2014-09-26 12:08:58

标签: powershell scripting

我使用以下代码获取文件的FileDescription:

(dir C:\test.exe).VersionInfo | select-object FileDescription | fl

这很好用,下一步是:我希望搜索以特定FileDescription结尾的所有文件,然后删除这些文件所在的文件夹。这可能吗?谢谢!

2 个答案:

答案 0 :(得分:0)

我的烟斗出错了。由于我们只管道.VersionInfo

,因此文件信息丢失了
Get-ChildItem C:\test.exe | Where-Object{$_.VersionInfo.FileDescription -like "*endofdescription"} | Remove-Item -WhatIf

如果您使用-Recurse返回更多文件并继续使用Where-Object来过滤您想要的文件,那将更有意义。这应该找到文件并返回其文件夹名称。由于文件夹中可能有多个文件匹配,我们可以在Select-Object -Unique中输出结果以获取单个文件夹。

Get-ChildItem C:\MyFolder -Recurse | Where-Object{$_.VersionInfo.FileDescription -like "*endofdescription"} | ForEach-Object{Split-Path $_.FullName -Parent} | Select-Object -Unique | ForEach-Object{Remove-Item $_ -WhatIf -Confirm:$false -Force -Recurse}

我保留-WhatIf作为预防措施。如果代码符合您的需要,请删除。

答案 1 :(得分:0)

这有用吗?

Get-ChildItem C:\MyFolder -Recurse | `
Where-Object{$_.VersionInfo.FileDescription -like "*endofdescription"} |`
%{$_.DirectoryName}|`
sort-object -unique| `
remove-item -recurse -whatif