Показать полную графическую версию : [решено] Поиск файла в каталоге по размеру и копирование этого каталога
Добрый день, помогите пожалуйста написать скрипт.
Исходные данные:
Есть папки: catalog, source.
Нужно обойти в цикле папку catalog, в которой лежат подпапки. В каждой подпапке есть другие папки и файлы. И всегда есть файл c именем filename. Если этот файл размером больше 200кбайт, то нужно скопировать целиком эту подпапку со всеми ее каталогами и файлами в папку source.
DJ Mogarych
17-04-2020, 20:45
Создайте нужную иерархию папок и файлов и выложите её сюда в архиве zip.
megaloman
17-04-2020, 21:14
@Echo Off
cls
Set "FileFlag=D:\CMD_Forum\Box_In\Catalog\filename."
Set "BoxOut=Z:\Box_Out\Source"
Set /A Size=204800
FOR /F "usebackq tokens=1 delims=" %%i IN (`2^>nul Dir "%FileFlag%" /S /A:-D /B`) DO (
Call :FileSize "%FileFlag%" "%BoxOut%\" %Size% "%%i" %%~zi
)
pause
Exit /B
:FileSize
If %5 LEQ %3 Exit /B 1
Set "In=%~dp4"
Set "InD=%~dp1"
Set "Out=%~2"
Call Set Out=%%In:%InD%=%Out%%%
Xcopy "%~dp4*.*" "%Out%" /S /Y /F /D
Exit /B 0
Если только файл filename. не более 2 147 483 647 байт
Попробовал скрипт, не пошло. В архиве воссоздана структура и там же скрипт.
megaloman
17-04-2020, 22:54
piv70, Никогда так не делайте: не называйте командные файла именами команд. Переименуйте Ваш xcopy.cmd например в xxxcopy.cmd. Приложил результат работы командного файла без каких-либо изменений, кроме как в имени. Надеюсь, пути, которые написаны в скрипте, реально существуют.
спасибо, все работает. Запомню надолго про имена и командные файлы
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.