Помогите написать скриптик, решющий задачи поиска и удаления по таким критериям
Здравствуйте, помогите пожалуйста написать скрип для windows xp, выполняющий следующие действия:
Скрипту указывается начальная директория, в которой он:
1.Удаляет все файлы с расширением .html или .xml, которые меньше 5kb и больше 1mb.
2.После действия 1 удаляет все поддиректории в начальной директории, в которых не осталось файлов с расширением .html или .xml. Удаляет со всем остальным содержимым.
Заранее спасибо
|
Ivan Bardeen |
12-02-2011 00:51 1610788 |
Вот VBS скрипт, который решает вашу задачу в папке "c:\test", в моем примере
Код:
strComputer = "."
i=0
Set FSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = FSO.GetFolder("C:\test")
Set colSubfolders = objFolder.Subfolders
For Each objSubfolder in colSubfolders
For Each file In objSubfolder.files
If Right(File.Name,4)="html" Or Right(File.Name,4)=".xml" Then
i = i + 1
If file.size < 5120 Or file.size > 1048576 Then
file.delete
i = i - 1
End If
End If
Next
ShowSubFolders(objSubfolder)
If i = 0 Then
objsubfolder.delete
End If
i = 0
Next
Sub ShowSubFolders(Folder)
For Each Subfolder In Folder.SubFolders
For Each file In Subfolder.files
If Right(File.Name,4)="html" Or Right(File.Name,4)=".xml" Then
i = i + 1
If file.size < 5120 Or file.size > 1048576 Then
file.delete
i = i - 1
End If
End If
Next
ShowSubFolders Subfolder
Next
End Sub
|
Код:
@echo off
set $DIR=C:\TEST
for /f "delims=" %%a in ('dir/b/s/a-d "%$DIR%\*.xml" "%$DIR%\*.html"') do (
if %%~za lss 5120 del /f "%%a"
if %%~za gtr 1048576 del /f "%%a"
)
dir /b/s/ad "%$DIR%\*"|sort /r >"%TEMP%\%~n0.tmp"
for /f "usebackq delims=" %%a in ("%TEMP%\%~n0.tmp") do (
(dir /b/ad "%%a\*" 2>nul
dir /b/a-d "%%a\*.xml" "%%a\*.html" 2>nul
)|find /c /v "" >nul||rd /s/q "%%a"
)
|
Время: 08:53.
© OSzone.net 2001-