当前位置:  开发笔记 > 编程语言 > 正文

如何使用PowerShell将文件移动到回收站?

如何解决《如何使用PowerShell将文件移动到回收站?》经验,为你挑选了5个好方法。

默认情况下,当您使用PowerShell删除文件时,它将被永久删除.

我想将删除的项目实际上转到回收站,就像我通过shell删除一样.

如何在PowerShell中对文件对象执行此操作?



1> John Pankowi..:

如果您不想总是看到确认提示,请使用以下命令:

Add-Type -AssemblyName Microsoft.VisualBasic
[Microsoft.VisualBasic.FileIO.FileSystem]::DeleteFile('d:\foo.txt','OnlyErrorDialogs','SendToRecycleBin')

(解决方案由Shay Levy提供)


+1以避免提示!顺便说一下,请记住还有"DeleteDirectory"

2> 小智..:

它在PowerShell中的工作方式与Chris Ballance在JScript中的解决方案非常相似:

 $shell = new-object -comobject "Shell.Application"
 $folder = $shell.Namespace("")
 $item = $folder.ParseName("")
 $item.InvokeVerb("delete")



3> Omar Shahine..:

这是一个缩短版本,减少了一些工作

$path = ""
$shell = new-object -comobject "Shell.Application"
$item = $shell.Namespace(0).ParseName("$path")
$item.InvokeVerb("delete")



4> mikemaccana..:

2017答案:使用回收模块

Install-Module -Name Recycle

然后运行:

Remove-ItemSafely file

我喜欢trash为这个做一个别名.



5> sba..:

这是一个改进的函数,它支持目录和文件作为输入:

Add-Type -AssemblyName Microsoft.VisualBasic

function Remove-Item-ToRecycleBin($Path) {
    $item = Get-Item -Path $Path -ErrorAction SilentlyContinue
    if ($item -eq $null)
    {
        Write-Error("'{0}' not found" -f $Path)
    }
    else
    {
        $fullpath=$item.FullName
        Write-Verbose ("Moving '{0}' to the Recycle Bin" -f $fullpath)
        if (Test-Path -Path $fullpath -PathType Container)
        {
            [Microsoft.VisualBasic.FileIO.FileSystem]::DeleteDirectory($fullpath,'OnlyErrorDialogs','SendToRecycleBin')
        }
        else
        {
            [Microsoft.VisualBasic.FileIO.FileSystem]::DeleteFile($fullpath,'OnlyErrorDialogs','SendToRecycleBin')
        }
    }
}

推荐阅读
赛亚兔备_393
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有