Войти

Показать полную графическую версию : [решено] Удаление файлов


vickt
09-11-2016, 15:10
Возможно ли удалить в папке все .ico файлы кроме самого большого по размеру.
Скрипт должен быть с указанием пути к папке.

alpap
09-11-2016, 19:04
@echo off
set "sdir=papka"& if not "%~1"=="" set "sdir=%~1"
::set "sdir=papka"& if "%~1"=="" set /p sdir="Введите путь к папке: "
for /f "delims=" %%a in ('dir /a-d/b/o-s "%sdir%\*.ico"^|more +1') do del /q "%sdir%\%%a"
exit

vickt
09-11-2016, 20:28
alpap, не удаляет не одного файла в папке.

alpap
09-11-2016, 20:45
vickt,
Поехали
- в коде имя папки "papka" по умолчанию, если не задана параметром или вручную, если используется закомментированная строка, находится она (папка "papka") в той же директории где bat с кодом иначе вместо "papka" надо написать set "sdir=Диск:\путь\имя папки" и она должна существовать, я предполагал что эти вещи не придеться объяснять человеку, вытягивающему что-то из .exe
- возможно в папке у вас файлы с расширением не .ico, как вы указали, тогда поменять на нужное
- а, собственно, более вариантов нет :)

vickt
09-11-2016, 21:20
alpap, Спасибо большое.

megaloman
09-11-2016, 22:24
alpap, Не понимаю, зачем здесь More, когда можно в For применить Skip@Echo Off

Set "Where=Z:\Temp"
Set "Mask=*.ico"

FOR /F "usebackq skip=1 delims=" %%i IN (`Dir "%Where%\%Mask%" /B /A:-D /O:-S 2^>nul`) DO Del "%Where%\%%i"

Iska
09-11-2016, 22:40
alpap, Не понимаю, зачем здесь More, когда можно в For применить Skip »
Я скромно промолчал ;).




© OSzone.net 2001-2012