作成したスクリプトに問題があります。
@echo off
e:
cd folder1
cd logs
cd App1
for /F "skip=20 delims=" %%F in ('dir /b/o-d/a-d log11101*.*') do del "%%F"
このスクリプトは、1つのフォルダーで適切に機能します。最新の20個のログファイルを保持し、フォルダ内の「log11101」で始まる残りのすべてのファイルを削除します(これらのフォルダに他のログファイルがあるため、このスクリプトでは削除したくない...適用したいこのスクリプトは複数のフォルダーにありますが、すべてFOLDER1にあり、同じ「for /f」skip=20.........................を使用しています。 ........ do del"%%F"。親フォルダがFOLDER1/LOGSであるため、このようなことをしようと思いました。
@echo off
e:
cd folder1
cd logs
cd App1
for /F "skip=20 delims=" %%F in ('dir /b/o-d/a-d log11101*.*') do del "%%F"
cd ..
cd App2
for /F "skip=20 delims=" %%F in ('dir /b/o-d/a-d log11101*.*') do del "%%F"
しかし、それは機能しません!1つのフォルダで機能しますが、もう1つは、20個のファイルを保持して残りを削除するのではなく、1個を除くすべてのファイルを削除します。
このようなスクリプトでターゲットにするすべてのフォルダーを配置し、このスクリプトを1回だけ実行する方法はありますか?:
x:/folder1/logs/app1
x:/folder1/logs/app2
x:/folder1/logs/app4
for /f "skip=20...............
ありがとう