PowerShell把文件删除到回收站的方法

流离岁月 2014-06-10

某同事辛苦了一个月加班快要完成的设计方案,因为自己一时不小心,直接从公司的共享文件服务器上删除了,无法追回。我也试着建了个共享文件夹,通过资源管理器删除后,也在回收站无法找到,这样也算理解那位女汉子的苦衷了。

我们平时使用PowerShell的Remove-Item命令删除了文件,也是属于彻底删除。其实说真的,如果可以,我很想对招远快餐店的6名凶手,执行remove命令,不,直接kill命令。

那怎样在PowerShell中将文件安全地删除进回收站?显然需要调用Windows的Com组件了:

代码如下:

$testFile="jb51.net"
dir | Out-File $testFile
$shell = new-object -comobject "Shell.Application"
$item = $shell.Namespace(0).ParseName( (Resolve-Path $testFile).Path)
$item.InvokeVerb("delete")

注意第4行,一定要用绝对路径,使用相对路径可能会报错。

相关推荐