Как удалять файлы по размеру из командного файла?
Нужно удалить все файлы меньше 1kb в директории и в поддиректориях с помощью командного файла или скрипта.
Как это сделать и можно ли вообще это сделать?
|
Petya V4sechkin |
21-01-2009 20:36 1015122 |
njg, допустим, папка Z:\SomeFolder:
Код:
@Echo Off
SetLocal EnableExtensions
Set Fldr=Z:\SomeFolder
For /R %Fldr% %%I In (*.*) Do If %%~zI LSS 1024 Del /F /Q "%%~I"
|
Хочу сделать примерно так:
Код:
@Echo Off
SetLocal EnableExtensions
For /F "UseBackQ Delims=" %%I In (`Dir /AD /B /ON 2^>nul`) Do (
Set Folder=%%~I
echo %Folder%
For /R %Folder% %%I In (*.*) Do If %%~zI LSS 1024 Del /F /Q "%%~I"
)
Подскажите в чем ошибка?
|
Petya V4sechkin |
22-01-2009 09:02 1015537 |
njg, я привел рабочий вариант. Вас что-то не устраивает?
|
JimmOnLine |
23-10-2014 09:06 2419169 |
Добрый день!
Вопрос по теме: А каким образом выполнить перемещение из одного каталога в другой файлы, размер которых составляет меньше 1 кб?
|
Например, так:
читать дальше »
Код:
@echo off
setlocal enableextensions enabledelayedexpansion
set sSourceFolder=E:\Песочница\0404\01
set sDestFolder=E:\Песочница\0404\02
set /a iSize = 1^<^<10
if exist "%sSourceFolder%\." (
if exist "%sDestFolder%\." (
pushd "%sSourceFolder%"
for /f "usebackq delims=" %%i in (
`2^>nul dir /b /a:-d "*.*"`
) do if %%~zi lss %iSize% (
echo Moving [%sSourceFolder%\%%~i] into folder [%sDestFolder%]...
move "%%~i" "%sDestFolder%\"
)
popd
) else (
echo Can't find destination folder [%sDestFolder%].
exit /b 2
)
) else (
echo Can't find source folder [%sSourceFolder%].
exit /b 2
)
endlocal
exit /b 0
|
JimmOnLine |
23-10-2014 11:27 2419228 |
Работает.
Спасибо большое.
А для файлов размер которых составляет 0 кб?
|
Цитата:
Цитата JimmOnLine
А для файлов размер которых составляет 0 кб? »
|
Код:
@echo off
setlocal enableextensions enabledelayedexpansion
set sSourceFolder=E:\Песочница\0404\01
set sDestFolder=E:\Песочница\0404\02
set /a iSize = 0
if exist "%sSourceFolder%\." (
if exist "%sDestFolder%\." (
pushd "%sSourceFolder%"
for /f "usebackq delims=" %%i in (
`2^>nul dir /b /a:-d "*.*"`
) do if %%~zi equ %iSize% (
echo Moving [%sSourceFolder%\%%~i] into folder [%sDestFolder%]...
move "%%~i" "%sDestFolder%\"
)
popd
) else (
echo Can't find destination folder [%sDestFolder%].
exit /b 2
)
) else (
echo Can't find source folder [%sSourceFolder%].
exit /b 2
)
endlocal
exit /b 0
|
Из письма на почту:
Цитата:
Цитата jkot1094
Здавствуйте, в данной теме http://forum.oszone.net/thread-129366.html вы помогли с кодом который удаляет файлы по размеру меньше 1-го килобайта. Вот прикладываю код. Такая ситуация, если дописываем дополнительные пути - скрипт все равно перемещает файлы только из одного путя. Помогите пожалуйста сделать так чтобы можно было добавлять много путей из которых перемещать файлы
Скрытый текст
Код:
@echo off
setlocal enableextensions enabledelayedexpansion
set sSourceFolder=C:\Users\Mario\Desktop\STASJI\112
set sSourceFolder=C:\Users\Mario\Desktop\STASJI\113
set sDestFolder=C:\Users\Mario\Desktop\STASJI\vsesuda
set /a iSize = 1^<^<10
if exist "%sSourceFolder%\." (
if exist "%sDestFolder%\." (
pushd "%sSourceFolder%"
for /f "usebackq delims=" %%i in (
`2^>nul dir /b /a:-d "*.*"`
) do if %%~zi lss %iSize% (
echo Moving [%sSourceFolder%\%%~i] into folder [%sDestFolder%]...
move "%%~i" "%sDestFolder%\"
)
popd
) else (
echo Can't find destination folder [%sDestFolder%].
exit /b 2
)
) else (
echo Can't find source folder [%sSourceFolder%].
exit /b 2
)
endlocal
exit /b 0
|
Помог с кодом, «который удаляет файлы по размеру меньше 1-го килобайта» не я, а Petya V4sechkin. А вот код, который Вы использовали, действительно мой, но он про перемещение по размеру.
Попробуйте так (не проверялось):
Скрытый текст
Код:
@echo off
setlocal enableextensions enabledelayedexpansion
set sSourceFolders="C:\Users\Mario\Desktop\STASJI\112" "C:\Users\Mario\Desktop\STASJI\113" "C:\Users\Mario\Desktop\STASJI\114" "C:\Users\Mario\Desktop\STASJI\NNN"
set sDestFolder=C:\Users\Mario\Desktop\STASJI\vsesuda
set /a iSize = 1^<^<10
for %%i in (%sSourceFolders%) do (
if exist "%sDestFolder%\." (
if exist "%%~i\." (
pushd "%%~i"
for /f "usebackq delims=" %%j in (
`2^>nul dir /b /a:-d "*.*"`
) do if %%~zj lss %iSize% (
echo Moving [%%~i\%%~j] into folder [%sDestFolder%]...
move "%%~j" "%sDestFolder%\"
)
popd
) else (
echo Can't find source folder [%%~i].
)
) else (
echo Can't find destination folder [%sDestFolder%].
exit /b 1
)
)
endlocal
exit /b 0
Никаких проверок на наличие уже существующих файлов в целевом каталоге не делается.
|
Время: 11:30.
© OSzone.net 2001-