Batch file 删除文件夹中的文件和子文件夹;tmp“;及;“缓存”;

Batch file 删除文件夹中的文件和子文件夹;tmp“;及;“缓存”;,batch-file,batch-processing,Batch File,Batch Processing,我想使用下面的脚本清除“C:\Storage\websites\Site1”等网站中的“tmp”和“cache”文件夹 它尝试删除“C:\Storage\Websites\Site1\tmp”和“C:\Storage\Websites\Site1\cache”中的文件和子文件夹 这是正确的,但它也会尝试删除文件和子文件夹,例如“C:\Storage\Websites\Site1\MySpecialLittleProgramm\tmp”和“C:\Storage\Websites\Site1\MyS

我想使用下面的脚本清除“C:\Storage\websites\Site1”等网站中的“tmp”和“cache”文件夹

它尝试删除“C:\Storage\Websites\Site1\tmp”和“C:\Storage\Websites\Site1\cache”中的文件和子文件夹

这是正确的,但它也会尝试删除文件和子文件夹,例如“C:\Storage\Websites\Site1\MySpecialLittleProgramm\tmp”和“C:\Storage\Websites\Site1\MySpecialLittleProgramm\cache”

这是错误的。它应该只清理网站根目录中的“tmp”和“cache”文件夹,而不清理其他子文件夹

如果我删除'dir/a:d/b/s tmp cache'中的/s参数,它将找不到任何内容

我怎么做这个部分

(如果有人复制我的脚本,我已删除文件删除部分和文件夹删除部分中的/q参数。)

更新:

我将我的代码更新为(它现在正在工作):


这将删除这两个位置中的文件:

@echo off
del "C:\Storage\Websites\Site1\tmp\*.*" /a /s
del "C:\Storage\Websites\Site1\cache\*.*" /a /s
根据您的评论,您可能需要执行以下操作:在测试
echo
关键字以查看控制台上将执行的命令后,删除该关键字

@echo off
cd /d "C:\Storage\Websites"
for /d %%a in (*) do (
   for %%b in (tmp cache) do (
      pushd "%%~fa\%%b" 2>nul && (echo rd /s /q "%%~fa\%%b" 2>nul & popd)
   )
)
pause

我建议使用
rmdir
rd
执行此任务:

rd "C:\Storage\Websites\Site1\tmp" /S /Q
md "C:\Storage\Websites\Site1\tmp"

rd "C:\Storage\Websites\Site1\cache" /S /Q
md "C:\Storage\Websites\Site1"
命令
rd
,带有选项
/S
用于所有子目录,以及
/Q
用于安静删除的
tmp
缓存
,但是,这两个目录可以使用命令
md
轻松地重新创建,尽管我很确定这在这里不是真的必要,因为创建
tmp
cache
的应用程序也会自动创建


如果这不是您想要的,请在清理之前和清理之后显示为目录列表,其中一个目录中包含文件和文件夹。

我有许多站点,因此我需要一个与我编写的脚本类似的脚本。它只需要删除网站根目录中的“tmp”和“cache”。它还会(错误地)删除子文件夹中的匹配文件夹,如“C:\Storage\Websites\Site1\SUBFOLDER\tmp\”或“C:\Storage\Websites\Site1\SUBFOLDER\cache\”。你能改进我现有的脚本使其工作吗?:-)解释你的许多站点列表的来源和文件夹的位置-这将有助于了解如何解决你的问题。阅读不起作用的代码很少有用——因为它不起作用。
@echo off
cd /d "C:\Storage\Websites"
for /d %%a in (*) do (
   for %%b in (tmp cache) do (
      pushd "%%~fa\%%b" 2>nul && (echo rd /s /q "%%~fa\%%b" 2>nul & popd)
   )
)
pause
rd "C:\Storage\Websites\Site1\tmp" /S /Q
md "C:\Storage\Websites\Site1\tmp"

rd "C:\Storage\Websites\Site1\cache" /S /Q
md "C:\Storage\Websites\Site1"