Powershell-是否删除包含具有特定文件说明的文件的文件夹?

Powershell-是否删除包含具有特定文件说明的文件的文件夹?,powershell,scripting,Powershell,Scripting,我正在使用以下代码获取文件的文件描述: (dir C:\test.exe).VersionInfo | select-object FileDescription | fl 这很好,下一步是:我要搜索以特定文件描述结尾的所有文件,然后删除这些文件所在的文件夹。这可能吗?谢谢 我的管道出错。文件信息丢失,因为我们只使用管道.VersionInfo 如果使用-Recurse返回更多文件,并继续使用Where对象筛选所需的文件,这将更有意义。这将找到文件并返回其文件夹名称。由于一个文件夹中可能有多个

我正在使用以下代码获取文件的文件描述:

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

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

我的管道出错。文件信息丢失,因为我们只使用管道.VersionInfo

如果使用-Recurse返回更多文件,并继续使用Where对象筛选所需的文件,这将更有意义。这将找到文件并返回其文件夹名称。由于一个文件夹中可能有多个匹配的文件,因此我们可以将结果通过“选择对象-唯一”来获取各个文件夹

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。如果代码符合您的需要,请删除

这有用吗

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

目录C:\test.exe.VersionInfo | Where对象{$\像*endofdescription}删除项-WhatIf。猜测将有某种ForEach对象循环,其输出来自Get ChildItem调用谢谢!我在删除项目部分遇到问题,获取删除项目:找不到驱动器。名为“File”的驱动器不存在。这可以工作,但会删除文件,而不是文件所在的文件夹。有办法吗?谢谢@user2953714我已经更新了我的帖子,提供了一个基于文件夹的解决方案。谢谢!会打开一个确认对话框,有没有办法抑制它?-确认:$false就是你想要的。
Get-ChildItem C:\MyFolder -Recurse | `
Where-Object{$_.VersionInfo.FileDescription -like "*endofdescription"} |`
%{$_.DirectoryName}|`
sort-object -unique| `
remove-item -recurse -whatif