Batch file CMD命令删除文件并将其放入回收站?

Batch file CMD命令删除文件并将其放入回收站?,batch-file,cmd,console,Batch File,Cmd,Console,是否有任何控制台命令“del”从文件夹中删除文件并将其放入回收站?del命令将删除文件而不是回收站中的文件。这是一个第三方程序 注意:我并没有尝试过它。在名为cmdutils的集合中有一个“recycle.exe”命令部分 Recycle.exe是DEL命令的安全替代品,它将文件发送到回收站而不是删除。Recycle比DEL更灵活;您可以一次指定多个文件(或使用通配符) 可在 (工具最后更新日期为2000年5月) 有一个“DeleteXP.exe”用于从Windows(Windows 9x和W

是否有任何控制台命令“del”从文件夹中删除文件并将其放入回收站?del命令将删除文件而不是回收站中的文件。

这是一个第三方程序

注意:我并没有尝试过它。

在名为cmdutils的集合中有一个“recycle.exe”命令部分

Recycle.exe是DEL命令的安全替代品,它将文件发送到回收站而不是删除。Recycle比DEL更灵活;您可以一次指定多个文件(或使用通配符)

可在
(工具最后更新日期为2000年5月)

有一个“DeleteXP.exe”用于从Windows(Windows 9x和Windows NT 4.0/2000/XP)的命令提示符中删除文件。与仅删除文件的标准“DEL”命令不同,Delete XP删除文件并将其发送到回收站。要删除的文件将作为参数传递给它。它现在支持/p并添加了两个新选项/a/d/v

就像Windows NT/2000/XP中的“del”命令一样,即使在Windows 9x中,Delete XP也支持将多个文件名作为参数

可在
(工具最后更新日期为2004年9月)

有“recycle.exe”(maddogsw的开发者不同):

可在


(工具最后更新日期:2001年1月)

另外,如果要从命令行“cmdutils”中清空recylce bin,请使用“bin”命令:

bin /empty /force

发布
copy
del
的bat脚本将是一个简单的解决方案…

recycle.exe-f apple.jpg
来自 仍然有效

2014年3月,Windows7 x64,limite UAC帐户权限顺便说一句。 还使用一些Umlaut文件名进行了测试。
文件确实显示在回收站中,并且具有正确的还原路径。

所有答案都建议使用第三方工具,但您可以使用简单的
移动
您只需要确定正确的回收站路径

在XP中是
C:\RECYCLER
,在Vista和更高版本中是
C:\$Recycle.bin
。然而,这并不是全部,它只是一个主文件夹,但它包含子文件夹,这些是您需要移动文件的实际箱子

例如,在我的机器中,路径是:


c:\$Recycle.Bin\S-1-5-21-1291211594-156655150-3201569215-1000

无外部程序-。 它使用
Shell.Application
invoke-verb方法。 用法很简单:

call deleteJS.bat c:\someFile.txt
call deleteJS.bat d:\someFolder

如果已安装节点,则可以添加“”模块。适用于OS X、Linux和Windows

$ npm install -g trash
从那里,当您想将文件发送到回收站时,只需键入:

$ trash file.txt

这取决于文件的位置(并且只适用于一个文件)。它首先打开文件夹,然后模拟从键盘键入-选择文件,然后使用del键执行“delete”命令。为了避免错误,脚本被设置为在下一个命令之前暂停几秒钟

set shell = CreateObject("Shell.Application")
shell.Open "C:\Users\server\Desktop"
set wshShell = CreateObject("WScript.Shell")
wscript.Sleep 200
wshShell.SendKeys "testfile"
wshShell.SendKeys "{DEL}"
wscript.Sleep 100
wshShell.SendKeys "%{F4}"
我在记事本中编写了这段代码,然后将其保存为文件扩展名(.vbs)。然后使用将其添加到我的批处理文件中

wscript "%~dp0filename.vbs"
请注意,这两个文件(.bat和.vbs)需要放在同一文件夹位置,否则,如果放在另一个目录中,请在.bat文件中指定.vbs的位置。

您可以尝试。它将通过命令行将文件发送到Windows回收站


--Mike

好的,这是一个非常古老的线程,但是这个解决方案有一些在其他答案中没有提到的属性:

  • 它将PowerShell与两个Microsoft.VisualBasic COM对象的静态方法结合使用,允许在未经确认的情况下删除文件夹和文件(因此它可以在没有第三方实用程序的情况下使用,并且在无人参与的情况下运行)
  • 它允许传递通配符,因此在删除多个文件时不会太慢
将这一行程序粘贴到名为recycle.bat的文件中(以便您可以轻松地从命令行调用它):


好啊看起来没有内置命令可以在批处理代码中使用。我真的很想知道,如何使用
del
copy
,解决方案是使用
move
,这可能意味着设置您自己的“回收”文件夹,并使用cmd文件将文件移动到其中。在要移动的文件名上附加一个日期戳是相当容易的。您需要像windows回收站一样定期手动“清空”此文件夹。我希望这意味着设置一个假回收站,因为实际回收站中的文件名为C:\$recycle.bin\S-1-5-21-983910293-0978783143-9801237884-1001\$RIUIFOK。将文件随机复制/移动到Windows的目录结构中似乎是不明智的。此外,它无法知道删除的日期或原始位置。编辑:指出通过移动/复制而“引入”到回收站目录结构中的文件根本不会显示在Windows资源管理器的回收站中。此外,回收站不仅仅是任何普通目录,它还包含其内容的数据库。手动将内容放入其中意味着您将无法从“回收站”文件夹中查看/还原/清除它们。如果您这样做并在Windows资源管理器的文件夹列表中查看“回收站”,则不会在文件名列表中显示移动的文件名(在我的Win XP系统上尝试过),即使它位于C:\RECYCLER\folder中。“清空回收站”选项不会删除使用此方法完成的文件。但是,您可以在windows资源管理器中打开“C:\RECYLER\”,而“Emptyi回收站”会删除该文件夹中的文件。手动将文件移动到回收站文件夹中是个坏主意。回收站不仅仅是一个简单的文件夹,它是一个系统外壳文件夹,用于在
INFO
文件中维护已删除文件的列表。如果你手动将文件放入其中,垃圾箱将看不到它们,你将无法还原它们。但是你可以手动还原它们,就像你手动将它们移动到那里一样,对吗?@FabianRöling,也许,也许不是。这取决于程序用它做了什么。不管怎样,你都不应该手动操作。我的pre
wscript "%~dp0filename.vbs"
@powershell.exe -nologo -noprofile -Command "& {Add-Type -AssemblyName 'Microsoft.VisualBasic'; Get-ChildItem -Path '%~1' | ForEach-Object { if ($_ -is [System.IO.DirectoryInfo]) { [Microsoft.VisualBasic.FileIO.FileSystem]::DeleteDirectory($_.FullName,'OnlyErrorDialogs','SendToRecycleBin') } else { [Microsoft.VisualBasic.FileIO.FileSystem]::DeleteFile($_.FullName,'OnlyErrorDialogs','SendToRecycleBin') } } }"