使用通配符删除超过 30 天批处理脚本的多个文件

Delete multiple files older then 30 days batch script with wildcard

我想知道如何使用批处理命令删除不同文件夹中的多个文件。

我有以下代码,此代码适用于 1 张地图,但我需要为多张地图执行此代码: forfiles /p "D:\CHILI_Publisher\Data\Environments\Adecco\Cache_Data\Assets" /s /d -10 /c "cmd /c echo @file" PAUSE

这是各种带通配符的地图和各种文件类型的代码(这个报错:目录名无效: forfiles /p "D:\CHILI_Publisher\Data\Environments\*.*\Cache_Data\*.*" /s /d -10 /c "cmd /c echo @file" PAUSE

Tl;DR : 我有一个错误,想知道如何在批处理文件中正确使用通配符。

您可以将 FORFILES 包装在 FOR 循环中:

for /d %D in (c:\temp\a*;c:\temp\b*;c:\temp\c*) do forfiles /p %D /s /c "cmd /c echo @file" /d -10

如果您需要查找超级文件夹下所有名为 CACHE_DATA 的文件夹,您可以导航到超级文件夹 (cd D:\CHILI_Publisher\Data\Environments) 和 运行 这个:

for /f %F in ('dir /B /S /AD cache_data') do for /d %D in (%F) do forfiles /p %D /s /c "cmd /c echo @file" /d -10

如果您将脚本放在 BATCH 文件中,请记住使用 %%.

转义 %