如何在PowerShell 4中不使用大括号{}执行指定回收站清理命令
适配PowerShell 4的无大括号解决方案
没问题,针对你PowerShell 4的环境,我们可以利用PowerShell 3及以上引入的简化版Where-Object语法来避开大括号,同时精准筛选回收站中路径以C:\开头的文件并删除。
完整命令
$objShell = New-Object -ComObject Shell.Application $objFolder = $objShell.Namespace(0xA) Remove-Item ($objFolder.Items() | Select-Object -ExpandProperty Path | Where-Object Path -like "C:\*") -Recurse -Confirm:$false
关键说明
- 替换带大括号的
Where-Object:
你原来的where-object { $_.path -like "C:\*" }被替换成了Where-Object Path -like "C:\*"——这是PowerShell 3+支持的简化语法,直接指定属性名、比较运算符和匹配值,完全不需要大括号,刚好适配你的PS4版本。 - 优化路径提取:
用Select-Object -ExpandProperty Path替代原来的select path,可以直接提取出路径字符串,而不是包含Path属性的对象,让Remove-Item的参数更直接。 - 回收站访问逻辑:
0xA是回收站的系统命名空间ID,通过Shell.ApplicationCOM对象可以直接访问回收站的内容,这是低版本PowerShell中可靠的回收站操作方式。
安全提示
回收站删除操作不可逆,建议你先测试筛选逻辑:把Remove-Item换成Write-Output,运行后确认输出的路径都是你想要删除的C盘来源文件,再执行删除命令。
内容的提问来源于stack exchange,提问作者Siva Thilak
相关产品推荐
相关产品推荐

