-1

请帮忙批量写:

在磁盘 c:\ 我有一个名为 test 的文件夹;在这个文件夹中,我有不同名称的子文件夹。我需要批处理命令来遍历所有子文件夹,并查找名为“Log”和/或“sqlite.sql”的文件;如果这些文件大小 < 0 Kb 或不存在,则在不提示的情况下删除该子文件夹以及所有文件。

for each sub in Test
 if Isfile("Log") or Isfile("sqlite.sql") and EachFileSizes > 0 Then 
 Else
 Sub.delete
 End If
next
4

1 回答 1

1

此问题的解决方案取决于子文件夹的位置。如果它们都直接在 C:\test 下(只有一层深),那么这就是解决方案:

@echo off
setlocal EnableDelayedExpansion
cd C:\test
rem Process all subfolders
for /D %%a in (*) do (
   rem Initially, set to delete this subfolder
   set delete=yes
   rem Confirm that
   for %%b in (%%a\Log %%a\sqlite.sql) do (
      set size=%%~Zb
      if !size! gtr 0 set delete=no
   )
   if !delete! equ yes (
      ECHO rd /S /Q %%a
   )
)

如果子文件夹可能存在于 C:\test 下面的几个级别,则解决方案要复杂得多

于 2012-11-08T08:15:56.960 回答