-1

バッチで書くのを手伝ってください:

ディスクc:\にtestという名前のフォルダがあります。このフォルダには、異なる名前のサブフォルダがあります。すべてのサブフォルダーをループして、「Log」や「sqlite.sql」という名前のファイルを探すためのバッチコマンドが必要です。これらのファイルのサイズが0Kb未満であるか存在しない場合は、プロンプトなしですべてのファイルとともにこのサブフォルダーを削除してください。

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 の直下 (1 レベルの深さ) にある場合、これが解決策です。

@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 に答える