使用 Batch 或 VBS 文件回收文件夹的内容,但不回收文件夹本身

Recycle the CONTENTS of a folder, but not the folder itself with either a Batch or VBS file

标题几乎说明了一切。我的目标是创建某种可以通过双击(例如批处理)执行的文件,我在其中指定(在文件中)不需要发送到回收站的文件夹的路径,但是将其内容发送到回收站。看,我正在为 Rainmeter 皮肤做这个。我有很多 Adob​​e 创建的临时文件和文件夹,我可以控制它们的放置位置。但是,可能有相当多的文件堆积在我告诉他们所在的文件夹中,因此我需要找到一些方法来创建一个文件,该文件将回收指定文件夹中的所有文件和文件夹(但不回收或删除指定的文件夹)。这样,指定的文件夹将仍然存在,这样我就不必创建一个新文件夹并强制 Premiere Pro 重新定位到一个新文件夹(在我删除包含需要删除的文件的文件夹的情况下,我每次我使用这个脚本时,我都已经知道该怎么做了。

我试过一个名为 "Recycle.exe" 的实用程序,但我只能弄清楚如何让它回收指定的文件夹,而不是回收其内容。例如,当我在批处理文件中尝试以下操作时(使用以下实用程序时:http://www.maddogsw.com/cmdutils/):

@echo off
Recycle D:\TestFolder
pause

这会将名为 "TestFolder" 的文件夹及其内容发送到回收站(如果您正常执行此操作,它们将以同样的方式发送到回收站)。我的目标是保持指定的文件夹完好无损,仍然存在,但所有内容都没有被删除,而是被发送到回收站。我尝试了很多事情,但都没有成功。我真的不在乎实现这一点需要什么,但最终产品必须产生一个可以双击的文件并将指定文件夹的内容发送到回收站。 VBS 和批处理文件只是示例,但我相信可能还有其他方法可以做到这一点。我真的需要你的帮助,因为我在这方面非常接近。

(另外,请不要问我为什么将它发送到回收站而不是删除它,我这样做只是为了安全,以防万一我确定我需要恢复媒体cache/preview 文件。请记住,将文件夹的内容发送到回收站而不是删除它们是一个非常重要的功能,但是我希望通过它来完成。)

由于您可以指定文件并有一个预先确定的文件夹来保存它们,因此您可以使用 for 循环遍历目录中的文件列表。

pushd D:\TestFolder
for /F %%A in ('dir /b') do Recycle %%A
popd

您可能想先说 echo Recycle %%A 以确保它会抓住您想要的一切。

recycle.exe 的文档声称您可以使用通配符,因此 理论上 您可以简单地说 recycle D:\TestFolder\*.* 而不是使用 for 循环。