Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Ветеран


Contributor


Сообщения: 2728
Благодарности: 1697

Профиль | Отправить PM | Цитировать


FantomasAnand, Архиватора Zip у меня нет. Попробуйте. Не знаю, насколько код чувствителен к версии 7z. Я предположил, что в каждом архиве искомые имена уникальны, то есть не повторяются. Если это не так, можно переделать
Код: Выделить весь код
@Echo Off

Set "FileIn=Z:\Box_In\*.zip"

Set "Exists="data1.cab" "data2.cab""
Set /A NExists=2

Set "BoxOut=Z:\Box_Out"

Set "Arc="C:\Program Files\7-Zip\7z.exe" l -r"

Set "FileTmp=%Tmp%\%~nx0.tmp"
FOR /F "usebackq delims=" %%i IN (`dir "%FileIn%" /S /B /A:-D 2^>nul`) DO Call :CheckZip "%%i"
Del "%FileTmp%" 2>nul

GoTo :Eof

:CheckZip
	%Arc% %1 %Exists% >"%FileTmp%"
	Set /A N=0
	FOR /F "usebackq tokens=5 delims= " %%s IN ("%FileTmp%") DO Set /A N=%%s 2>nul
	If %N% GEQ %NExists% Copy %1 "%BoxOut%" >nul
GoTo :Eof

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

Это сообщение посчитали полезным следующие участники:

Отправлено: 22:57, 09-11-2017 | #7