Имя пользователя:
Пароль:
 

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

Ветеран


Contributor


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

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


Код: Выделить весь код
@Echo Off

Set Dir1=D:\Delete\Основной каталог
Set Dir2=D:\Delete\Следующий образ
Set Zip=D:\Delete\7zip

rem Set ZipExe="C:\Program Files\WinRar\WinRar.exe" a -r -ibck
Set ZipExe="C:\Program Files\7-Zip\7z.exe" a -r 

Set Dir11="Test1" "Test2" "Test3" "Test4" "Test5" "Test6" "Test7" "Test8" "Test9" "Test10" "Test11" "Test12" "Test13" "Test14" "Test15"

SetLocal EnableExtensions
SetLocal EnableDelayedExpansion

md "%Zip%" 2>nul
Cd /D "%Zip%" 

For  /L %%n IN (1,1,9) DO (
        Set /A NN=%%n+100
        Set NN=!NN:~1,2!
 
	For %%d IN (%Dir11%) DO (

rem		md "%Dir1%\%%~d\%%n" 2>nul
rem		Echo %Dir1% %%d %%n >"%Dir1%\%%~d\%%n\%time:~6,5% %%~d_!NN!.txt"

		If Exist "%Dir1%\%%~d\%%n\*.*" (
		   md "%Dir2%\%%n\%%~d\!NN!" >nul 2>nul
		   Copy "%Dir1%\%%~d\%%n\*.*" "%Dir2%\%%n\%%~d\!NN!\" >nul 2>nul
		)
	)
	%ZipExe% %%n "%Dir2%\%%n\*.*"
rem        rd "%Dir2%\%%n" /s /q 
)
Вот решение. В нём закомментировано

rem Set ZipExe="C:\Program Files\WinRar\WinRar.exe" a -r -ibck
то есть вариант с вызовом упаковщика winrar

rem md "%Dir1%\%%~d\%%n" 2>nul
rem Echo %Dir1% %%d %%n >"%Dir1%\%%~d\%%n\%time:~6,5% %%~d_!NN!.txt"
Создание тестовых исходных папок с тестовыми исходными файлами - ручками такую структуру мне было делать лень

rem rd "%Dir2%\%%n" /s /q
здесь я привёл пример, как можно убить подпапку по мере её упаковки.
можно ниже последней скобоки вообще написать

rd "%Dir2%" /s /q

если нет смысла хранить файлы аж в 3 экземплярах, оставляем только упакованные.

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


Последний раз редактировалось megaloman, 27-11-2012 в 22:41.

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

Отправлено: 18:41, 27-11-2012 | #3