批处理脚本从 Windows 回收站移动文件

批处理脚本从 Windows 回收站移动文件

有没有办法使用批处理脚本将文件从 Windows 回收站移动到另一个文件夹?

背景:我的电脑上有一个名为的文件夹C:\Temp。我每周都会使用批处理脚本清除此文件夹。我想将此C:\Temp文件夹用作所有已删除文件的默认位置。不幸的是,这个帖子,我了解到您无法更改 Windows 删除文件和文件夹的默认位置。但是,我想知道是否可以使用批处理脚本将文件从回收站移出并移入我的C:\Temp文件夹。

注意:如果有其他方法,也许是不使用批处理文件的方法,我也会接受。

答案1

可以使用 PowerShell 脚本完成此操作,如下所示:

$shell = New-Object -ComObject Shell.Application  
$recycleBin = $shell.Namespace(0xA) #Recycle Bin  
$recycleBin.Items() | %{Move-Item $_.Path ("C:\Temp\{0}" -f $_.Name)}   
  • 移动到目标文件夹后,已删除文件夹的目录结构将保留。
  • 目标文件夹(C:\Temp在本例中)必须在脚本运行之前就存在,否则文件将不会被移动。
  • 如果目标位置已存在同名文件,则不会移动文件。可以通过捕获错误并在名称后附加一些内容以使其唯一来处理此问题。
  • 该脚本的操作特定于当前用户的回收站。

脚本是修改后的版本一个来自 Microsoft 脚本中心存储库。

答案2

您可以在路径中访问回收站回收站你可以使用复制命令。请注意,您可以在多个驱动器中拥有类似的文件夹。

我将从回收站复制所有文件和文件夹,然后在下一行删除其中的所有内容。

脚本将会是这样的:

xcopy C:\$Recycle.bin C:\Temp /E /R /Y
rd /s /q C:\$Recycle.bin

回收站无法收到“清空”命令。删除此文件夹实际上就是清空它。Windows 会根据需要重新创建此文件夹。

您可以阅读命令行参考在 Microsoft 的 Technet 上了解复制

针对@JdeBP 的评论:如果你的电脑中有多个用户帐户,你可以使用C:\$Recycle.bin\USER-SID而是。要找出不同的 SID 以及与您的用户帐户相对应的 SID,请使用此注册表项。

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList

个人资料图片路径键包含用户名。

相关内容