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

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Архивирование каталога

Ответить
Настройки темы
CMD/BAT - Архивирование каталога

Пользователь


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

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


Изменения
Автор: UserX
Дата: 01-11-2018
Здравствуйте!

Помогите, пожалуйста, со следующими вопросами.

1.
Есть каталог Src и каталог Dst.
Требуется создать батник, который будет запускаться периодически, т.е. от случая к случаю, и который будет добавлять архивы ВСЕХ каталогов, включая их подкаталоги, из Src в Dst с именами архивов, совпадающими с именами каталогов первого уровня из Src.
То есть, после отработки такого батника, в Dst должны создаться все несуществующие там архивы с именами, совпадающими с именами каталогов первого уровня из Src.
Архивы в Dst могут быть как *.rar, *.zip, *.7z и пр. одновременно. Важны лишь сами имена без их архивного расширения.
В целях ускорения работы такого батника при его повторных запусках, хотелось бы, чтобы при наличии в каталоге Dst архивов (*.rar, *.zip, *.7z и пр.) с именами каталогов из Src, эти каталоги из Src повторно в Dst не переархивировались.
То есть, если запустить такой батник в случае, когда в Dst уже имеются все имена архивов, совпадающие (без учёта архивного расширения типа .rar, .zip, .7z и пр.) c именами каталогов первого уровня из Src, то такой батник ничего не должен создавать или перепаковывать.
При этом должно быть допустимым наличие в Dst прочего содержимого - как файлов, так и папок, которые вообще не имеют отношения к именам из Src.

2.
Если предположить частный случай по первому вопросу - имена каталогов первого уровня в Src находятся в формате даты YYYYMMDD, хотелось бы отдельным батником установить реальные даты создания/изменения этих каталогов в соответствии с их именами. Время не важно.

Буду признателен за помощь.

Отправлено: 22:08, 01-11-2018

 

Ветеран


Contributor


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

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


если маска пустая, чтобы архивировались из каталога Src в каталог Dst не самый последний, а ВСЕ папки и ВСЕ файлы, архивов которых ещё нет в Dst
Код: Выделить весь код
@Echo Off
cls
	Set "Src=Z:\Box_In\Мой контент\Книги"
rem	Set "Mask=File_2018-10-??_Original."
	Set "Mask="

	Set "Dst=Z:\Книги.arc"

	Set Arc="C:\Program Files\WinRar\WinRar.exe" a -r -dh -m3 -s -rr5p -ts+ -y
	Set "Ext=rar"

	Pushd "%Src%" || (Echo Folder not Found "%Src%" &Pause &Exit /B 2)
	If Not Exist "%Dst%" Md "%Dst%" || (Echo Folder not Created "%Dst%" &Pause &Exit /B 3)

	If Not "%Mask%"=="" GoTo :OneFile
		Set /A Err=1
		For /F "usebackq delims=" %%d IN (`2^>nul Dir "%Src%\%Mask%" /B /O:N`) DO Set /A Err=0 &Call :OutArc "%%d"
		GoTo :End		
	:OneFile 
		Set "Name="
		For /F "usebackq delims=" %%d IN (`2^>nul Dir "%Src%\%Mask%" /B /O:N`) DO Set "Name=%%d"
		If "%Name%"=="" (Echo File or Folder not Found "%Src%\%Mask%" &Pause &Exit /B 1) 
	
		Call :OutArc "%Name%"
		Set /A Err=%ErrorLevel%
	:End
		Popd
pause
Exit /B %Err%

:OutArc
	If Not Exist "%Dst%\%~1.*" (Echo "%Src%\%~1" &%Arc% "%Dst%\%~1.%Ext%" "%~1")
Exit /B

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

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

Отправлено: 10:52, 06-11-2018 | #21



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Пользователь


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

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


megaloman, Всё превосходно работает!

Но я, нагло используя плоды Вашего труда, немного переформулировал свою же задачу, дабы уже не было никаких ограничений по маске, и маска оставалась только маской без всяких посторонних смыслов.

Для того, чтобы не грузить маску иным, нехарактерным для неё смыслом, я решил ввести в скрипт дополнительный параметр "Mode".
Если установить Set "Mode=1", то получим однофайловый режим, а при любых других значениях Mode, например, если установить Set "Mode=0", получим режим архивации всех файлов из Src, архивов которых ещё нет в Dst.
Ну, и ещё добавил режим сортировки, дабы в однофайловом режиме архивировался либо первый, либо последний файл или каталог в зависимости от заданного режима сортировки.
Set "Ascending=" прямая сортировка - архивируется последний каталог или файл по маске.
Set "Ascending=-" обратная сортировка - архивируется первый каталог или файл по маске.

Естественно, ничего моего в полученном скрипте нет, всё полностью сделано из Вашего последнего скрипта. Просто он теперь полностью решает вместе и первую и вторую задачи по маске.

Прошу Вас, как настоящего профессионала, на всякий случай, посмотреть и проверить - не напорол ли я каких-либо косяков при "модернизации" Вашего превосходного исходника.
Ну, или, может можно сделать как-то изящнее, поскольку изначально задача мною озвучивалась совсем иначе.

Модернизированный батник

@Echo Off
cls
;Rem Mode must be set to 1 for OneFileMode or any value (0) for AllFilesMode
Set "Mode=1"
;Rem Set "Mode=0"

Set "Src=C:\111\Src"
Set "Dst=C:\111\Dst"
Set "Mask=??10??"
;Rem Маска всех октябрьских файлов и каталогов.
;Rem Mask - Mask for catalogs or files in Src.

;Rem Set "Ascending="
;Rem "Ascending=" прямая сортировка - архивируется последний каталог или файл по маске
Set "Ascending=-"
;Rem Set "Ascending=-" обратная сортировка - архивируется первый каталог или файл по маске

Set Arc="C:\Program Files\WinRar\WinRar.exe" a -r -ma4 -m5 -rr5p -ts+ -y
Set "Ext=rar"

Pushd "%Src%" || (Echo Folder not Found "%Src%" &Pause &Exit /B 2)
If Not Exist "%Dst%" Md "%Dst%" || (Echo Folder not Created "%Dst%" &Pause &Exit /B 3)

If "%Mode%"=="1" GoTo :OneFile
Set /A Err=1
For /F "usebackq delims=" %%d IN (`2^>nul Dir "%Src%\%Mask%" /B /O:%Ascending%N`) DO Set /A Err=0 &Call :OutArc "%%d"
GoTo :End
:OneFile
Set "Name="
For /F "usebackq delims=" %%d IN (`2^>nul Dir "%Src%\%Mask%" /B /O:%Ascending%N`) DO Set "Name=%%d"
If "%Name%"=="" (Echo File or Folder not Found "%Src%\%Mask%" &Pause &Exit /B 1)

Call :OutArc "%Name%"
Set /A Err=%ErrorLevel%
:End
Popd

pause
Exit /B %Err%

:OutArc
If Not Exist "%Dst%\%~1.*" (Echo "%Src%\%~1" &%Arc% "%Dst%\%~1.%Ext%" "%~1")
Exit /B


И ещё пара вопросов:
1) Команда "pause" в скрипте несёт какую-то иную цель, кроме сообщения о том, что батник выполнился и для продолжения нужно нажать любую клавишу? Имеется ввиду, удаление этой команды из скрипта не отразится на чём-либо ещё в его работе?
Просто мой опыт говорит, что порой что-то, на первый взгляд, очевидное таковым не всегда является в реалии. Поэтому, лучше лишний раз уточнить.
2) Как правильнее подавить вывод сообщений о результатах работы этого батника, если использовать его в заданиях Шедулера Виндовс? Ставить после каждой команды "> Nul" ? Или это делается как-то однократно в самом начале батника?
Вообще, что, на Ваш взгляд, имело бы смысл подправить в синтаксисе батника при его использовании в задании Шедулера?

Последний раз редактировалось UserX, 06-11-2018 в 20:52.


Отправлено: 18:03, 06-11-2018 | #22


Ветеран


Contributor


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

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


Вот оптимизированный вариант ориентированный на планировщик
Код: Выделить весь код
@Echo Off
cls
	Set "Src=Z:\Box_In\Мой контент\Книги"
	Set "Mask=File_2018-10-??_Original."
rem	Set "Mask="

rem	Set "DirKey=/O:-N /A:D"
	Set "DirKey=/O:-N"

	Set "Dst=Z:\Книги.arc"
	Set "Log=%Dst%\%~nx0.log"

	Set Arc="C:\Program Files\WinRar\WinRar.exe" a -r -dh -m3 -s -rr5p -ts+ -y
	Set "Ext=rar"

	Pushd "%Src%" || (Set MSG=Folder not Found "%Src%" &Set /A Err=2 &GoTo :End)
	If Not Exist "%Dst%" Md "%Dst%" || (Set MSG=Folder not Created "%Dst%" &Set /A Err=3 &GoTo :End)

	Set /A Err=1

	If     "%Mask%"=="" For /F "usebackq delims=" %%d IN (`2^>nul Dir "%Src%\%Mask%" /B %DirKey%`) DO (Set /A Err=0 &Call :OutArc "%%d")
	If Not "%Mask%"=="" For /F "usebackq delims=" %%d IN (`2^>nul Dir "%Src%\%Mask%" /B %DirKey%`) DO (Set /A Err=0 &Call :OutArc "%%d" &GoTo :End)

	:End
	Popd

	If "%Err%"=="1" (Set MSG=File or Folder not Found "%Src%\%Mask%" %DirKey%)
	If Not "%Err%"=="0" >>"%Log%" Echo %Date% %Time% %Msg%
pause
Exit /B %Err%

:OutArc
	If Not Exist "%Dst%\%~1.*" (
		>>"%Log%" Echo %Date% %Time% "%Src%\%~1" 
		%Arc% "%Dst%\%~1.%Ext%" "%~1"
	)
Exit /B
1. Pause можно/нужно закомментировать или убить
2. Если использовать батник в заданиях планировщика, то, наверное, надо иметь лог-файл. Если не надо, закомментируйте выделенные строки.
3. Для настройки работы команды Dir лучше использовать явным образом ключи. Делаем команду Dir /? и изучаем ключи и присваиваем нужный список переменной DirKey.
В частности, Set "DirKey=/O:-N /A:D" даст алфавитную сортировку в обратном порядке и включит в рассмотрение только папки.
4. Маску оставил как есть. В принципе можно легко ввести специальную переменную. Но не увидел большого смысла.
5. Я использую Winrar.exe, подозреваю, он работает быстрее.
Можно, конечно, использовать rar.exe, например:
Set Arc="C:\Program Files\WinRar\Rar.exe" a -r -dh -m3 -s -rr5p -ts+ -y
и подавить его вывод
%Arc% "%Dst%\%~1.%Ext%" "%~1" >nul
6.
Цитата UserX:
Set "Mask=??10??" »
Я не очень вчитывался в код, но эту маску я не понимаю. Кстати, для читабельности кода используйте тег Code

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


Последний раз редактировалось megaloman, 06-11-2018 в 21:52.


Отправлено: 21:44, 06-11-2018 | #23


Пользователь


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

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


Цитата megaloman:
Я использую Winrar.exe, подозреваю, он работает быстрее. »
Попытка использовать в Windows 2008 R2 (x64) rar.exe вообще не прошла. Поэтому, только WinRar.exe.

Цитата megaloman:
Я не очень вчитывался в код, но эту маску (??10??) я не понимаю »
Да это частный случай маски для файлов с именем YYMMDD, где в данном случае месяц указан конкретно ММ==10, т.е. октябрь.

Решил-таки оставить свою переменную Mode, поскольку без неё не будет работать произвольная маска выбора ВСЕХ файлов по заданной маске при их архивации, а будет иметься ввиду только маска *.* (сам ведь такую заказывал )
Собственно, только ради этого смысла и была введена переменная Mode

Огромное Вам спасибо за проделанную работу, представленный мастер-класс, в результате которого мною была получена бесценная информация. Спасибо Вам ещё раз.

Отправлено: 23:24, 06-11-2018 | #24


Пользователь


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

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


megaloman, Предложенный Вами последний оптимизированный батник перестал работать так, как он работал ранее и так, как мне было нужно. Изменить его так, чтобы он остался оптимизмрованным и при этом работал так, как он работал до последней оптимизации мне не удалось.

Всё-таки, мне очень нужно ввести переменную Mode, поскольку она позволяет работать с заданной маской в любом из двух режимов:
в режиме AllFilesMode (с заданной маской) и в режиме OneFileMode (тоже с заданной маской).
То, что приведено ниже, сейчас работает так, как нужно, но оно не оптимизировано и нет вывода логов.
Пожалуйста, помогите оптимизировать для планировщика приведённый батник, в котором указываются режимы Mode 0 и Mode 1.
Заранее большое спасибо.

Рабочий, но неоптимизированный батник

Код: Выделить весь код
@Echo Off
;Rem Mode must be set to 1 for OneFileMode or any value (0) for AllFilesMode
Set "Mode=0"
;Rem Set "Mode=1"

Set "Src=C:\111\Src"
Set "Dst=C:\111\Dst"
Set "Mask=File_2018-10-??_Original."
;Rem  Mask - Mask for catalogs or files in Src.

Set "DirKey=/O:N"
Rem Set "DirKey=/O:-N"


Set Arc="C:\Program Files\WinRar\WinRar.exe" a -r -ma4 -m5 -rr5p -ts+ -y
Set "Ext=rar"

Pushd "%Src%" || (Echo Folder not Found "%Src%" &Exit /B 2)

If Not Exist "%Dst%" Md "%Dst%" || (Echo Folder not Created "%Dst%" &Exit /B 3)

If "%Mode%"=="1" GoTo :OneFileMode
:AllFilesMode
   Set /A Err=1
   For /F "usebackq delims=" %%d IN (`2^>nul Dir "%Src%\%Mask%" /B %DirKey%`) DO Set /A Err=0 &Call :OutArc "%%d"
   GoTo :End

:OneFileMode
   Set "Name="
   For /F "usebackq delims=" %%d IN (`2^>nul Dir "%Src%\%Mask%" /B %DirKey%`) DO Set "Name=%%d"
   If "%Name%"=="" (Echo File or Folder not Found "%Src%\%Mask%" &Exit /B 1)

   Call :OutArc "%Name%"
   Set /A Err=%ErrorLevel%
:End
   Popd

Exit /B %Err%

:OutArc
   If Not Exist "%Dst%\%~1.*" (Echo "%Src%\%~1" &%Arc% "%Dst%\%~1.%Ext%" "%~1")
Exit /B

Последний раз редактировалось UserX, 07-11-2018 в 04:37.


Отправлено: 03:46, 07-11-2018 | #25


Ветеран


Contributor


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

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


Цитата UserX:
последний оптимизированный батник перестал работать так, как он работал ранее и так, как мне было нужно. »
здесь нет конкретики, что конкретно не так?
Здесь вариант с так любимой Вами переменной Mode
Код: Выделить весь код
@Echo Off
cls
	Set "Src=Z:\Box_In\Мой контент\Книги"
	Set "Mask=File_2018-10-??_Original."

	Set /A Mode=1		&Rem 1= 1 файл/папка, 0=все файлы/папки по маске

	Set "DirKey=/O:-N"	&Rem если выбирается один файл/папка, то выберется самый последний по алфавиту

	Set "Dst=Z:\Книги.arc"
	Set "Log=%Dst%\%~nx0.log"   &Rem Путь к лог-файлу. Можно указать в любом доступном месте с любым именем.

	Set Arc="C:\Program Files\WinRar\WinRar.exe" a -r -dh -m3 -s -rr5p -ts+ -y
	Set "Ext=rar"

	Pushd "%Src%" || (Set MSG=Folder not Found "%Src%" &Set /A Err=2 &GoTo :End)
	If Not Exist "%Dst%" Md "%Dst%" || (Set MSG=Folder not Created "%Dst%" &Set /A Err=3 &GoTo :End)

	Set /A Err=1

	If %Mode%==0 For /F "usebackq delims=" %%d IN (`2^>nul Dir "%Src%\%Mask%" /B %DirKey%`) DO (Set /A Err=0 &Call :OutArc "%%d")
	If %Mode%==1 For /F "usebackq delims=" %%d IN (`2^>nul Dir "%Src%\%Mask%" /B %DirKey%`) DO (Set /A Err=0 &Call :OutArc "%%d" &GoTo :End)

	:End
	Popd
	If "%Err%"=="1" (Set MSG=File or Folder not Found "%Src%\%Mask%" %DirKey%)
	If Not "%Err%"=="0" >>"%Log%" Echo %Date% %Time% %Msg%

pause
Exit /B %Err%

:OutArc
	If Not Exist "%Dst%\%~1.*" (
		>>"%Log%" Echo %Date% %Time% "%Src%\%~1" 
		%Arc% "%Dst%\%~1.%Ext%" "%~1"
	)
Exit /B

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


Последний раз редактировалось megaloman, 07-11-2018 в 10:06.

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

Отправлено: 10:01, 07-11-2018 | #26


Пользователь


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

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


megaloman, опробовал Ваш последний батник.
Что интересно - результат его работы в режиме Mode=0 (AllFilesMode) зависит от значения DirKey
То есть, в указанном режиме Mode=0 (AllFilesMode) при DirKey=/O:-N и DirKey=/O:N результаты работы в каталоге Dst существенно между собой различаются, хотя, по логике дел, они должны бы быть одинаковы. Если, конечно, я ничего не упускаю из вида.
Правильная, на мой взгляд, работа в режиме Mode=0 (AllFilesMode) достигается только в случае установки в команде Dir ключа прямой сортировки, т.е. при DirKey=/O:N.
Это, видимо, значит, что в режиме Mode=0 (AllFilesMode) от DirKey нужно вообще оказаться и явно устанавливать ключ прямой сортировки для Dir, т.е. /O:N.
С учётом изложенного, модифицированная версия полностью работающего батника, кажется наконец-то, обретает завершённый вид:
Незначительная модификация

Код: Выделить весь код
@Echo Off
cls
    Set "Mask=File_2018-10-??_Original."

    Set "Src=Z:\Box_In\Мой контент\Книги"
    Set "Dst=Z:\Книги.arc"

    Set "Log=%Dst%\%~nx0.log"   &Rem Путь к лог-файлу. Можно указать в любом доступном месте с любым именем.

    Set /A Mode=1         &Rem Mode=1 - один файл/папка по маске; Mode=0 - все файлы/папки по маске
    Set "DirKey=/O:-N"    &Rem если выбран режим один файл/папка (Mode=1), то выберется самый последний по алфавиту
    Rem Set "DirKey=/O:N"    &Rem если выбран режим один файл/папка (Mode=1), то выберется самый первый по алфавиту

    Set Arc="C:\Program Files\WinRar\WinRar.exe" a -r -dh -m3 -s -rr5p -ts+ -y
    Set "Ext=rar"

    Pushd "%Src%" || (Set MSG=Folder not Found "%Src%" &Set /A Err=2 &GoTo :End)
    If Not Exist "%Dst%" Md "%Dst%" || (Set MSG=Folder not Created "%Dst%" &Set /A Err=3 &GoTo :End)

    Set /A Err=1

    If %Mode%==0 For /F "usebackq delims=" %%d IN (`2^>nul Dir "%Src%\%Mask%" /B /O:N`) DO (Set /A Err=0 &Call :OutArc "%%d")
    If %Mode%==1 For /F "usebackq delims=" %%d IN (`2^>nul Dir "%Src%\%Mask%" /B %DirKey%`) DO (Set /A Err=0 &Call :OutArc "%%d" &GoTo :End)

    :End
    Popd
    If "%Err%"=="1" (Set MSG=File or Folder not Found "%Src%\%Mask%" %DirKey%)
    If Not "%Err%"=="0" >>"%Log%" Echo %Date% %Time% %Msg%

rem pause
Exit /B %Err%

:OutArc
    If Not Exist "%Dst%\%~1.*" (
        >>"%Log%" Echo %Date% %Time% "%Src%\%~1" 
        %Arc% "%Dst%\%~1.%Ext%" "%~1"
    )
Exit /B

Посмотрите, пожалуйста.

Последний раз редактировалось UserX, 07-11-2018 в 18:48.


Отправлено: 18:23, 07-11-2018 | #27


Ветеран


Contributor


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

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


Цитата UserX:
Что интересно - результат его работы в режиме Mode=0 (AllFilesMode) зависит от значения DirKey
То есть, при DirKey=/O:-N и DirKey=/O:N результаты работы в каталоге Dst существенно между собой отличаются, хотя, по логике дел, они должны бы быть одинаковы. Если, конечно, я ничего не упускаю.
Правильная, на мой взгляд, работа в режиме Mode=0 (AllFilesMode) достигается только в случае установки в команде Dir ключа прямой сортировки, т.е. при DirKey=/O:N. »
- категорически с Вами не согласен.Cущественно между собой отличаются - это как? Только по времени (порядку) создания архивов. В этом режиме ключ сортировки вообще не имеет значения на количество и номенклатуру созданных архивов. Можете его вообще сделать пустым или убить - по умолчанию Dir выдаёт прямую алфавитную сортировку (если иное не прописано в системе). Он был оставлен только для единообразия цикла. Я протестировал. Убедился. Что-то Вы при тестировании делаете некорректно. Например, не удаляете упакованные после предыдущего тестирования файлы. Пересчитайте кол-во архивов (можете в лог-файле) и убедитесь в совпадении. Посмотрите в лог-файле список упакованных файлов при прямой сортировке и обратной. Они отличаются только обратным порядком.
Дело Ваше. (1.)Клиент всегда прав. (2.)Если клиент не прав, смотри (1.) Успехов!

PS. Обратите внимание, что в посте #18 для одного файла выбирается последний в списке Dir файл, а в постах #23, #26 выбирается первый. Вот тут и имеет значение /O:N в старых вариантах и /O:-N в последних вариантах.

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


Последний раз редактировалось megaloman, 07-11-2018 в 19:23.


Отправлено: 18:58, 07-11-2018 | #28


Пользователь


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

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


Цитата megaloman:
- категорически с Вами не согласен.»
Я веду речь только об одном конкретном режиме, а именно о режиме с установленным Set /A Mode=0 (то есть, если установлен режим всех файлов по заданной маске).
В этом одном режиме результаты работы батника в папке Dst при "SetKey=/O:N" и "SetKey=/O:-N" могут получиться совершенно разные. Но я вполне допускаю, что при некоторых вариантах маски эти результаты могут быть и совершенно идентичными.
Но разве результаты работы сами по себе не является реальностью? Я ведь эти резульаты работы никак не подтасовывал и не пытался ввести Вас в заблуждение. С чем тут можно соглашаться или не соглашаться?
Меня и самого это удивило. Но факт есть факт, вне зависимости от того, согласен ли кто угодно с ним или нет.

Цитата megaloman:
Cущественно между собой отличаются - это как»
Отличаются самими архивами (что из файлов/папок из Src запаковывается в Dst) и их количеством (сколько файлов/папок из Src запаковывается в Dst).

Цитата megaloman:
Что-то Вы при тестировании делаете некорректно. Например, не удаляете упакованные после предыдущего тестирования файлы.»
Нет, перед каждым тестом я каждый раз полностью очищал содержимое папки Dst.
Да и как такое возможно - "сделать некорректное тестирование"? По-моему, тестирование не может быть корректным или некорректным. Оно может быть просто тестированием.

Готов выложить Вам примерное содержимое папки Src, которое в режиме с установленным режимом Set /A Mode=0 (то есть, если установлен режим всех файлов по заданной маске), даёт разные результаты в папке Dst по количеству и видам созданных архивов при изменении ключа сортировки в Dir c прямого на обратный, чтобы вы смогли лично в этом убедиться.
Выложить свой тест?

Последний раз редактировалось UserX, 07-11-2018 в 20:40.


Отправлено: 20:13, 07-11-2018 | #29


Пользователь


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

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


Ключи:
Set /A Mode=0
Set "Mask=??10??.*"
Dir исходной папки Src

Код: Выделить весь код
 Содержимое папки C:\111\Src

07.11.2018  20:41    <DIR>          .
07.11.2018  20:41    <DIR>          ..
05.11.2018  19:03    <DIR>          181027
05.11.2018  02:39    <DIR>          181028
01.10.2018  10:07           474 940 181028.jpg
05.11.2018  18:52    <DIR>          181029
01.10.2018  10:07           474 940 181029.jpg
05.11.2018  19:21    <DIR>          181030
01.10.2018  10:07           474 940 181030.jpg
05.11.2018  19:04    <DIR>          181103
01.10.2018  10:07           474 940 181103.jpg
               4 файлов      1 899 760 байт
               7 папок   4 155 273 216 байт свободно

Dir результата в Dst при /N:O

Код: Выделить весь код
 Содержимое папки C:\111\Dst

07.11.2018  20:54    <DIR>          .
07.11.2018  20:54    <DIR>          ..
07.11.2018  20:53        11 316 072 181027.rar
07.11.2018  20:53           486 766 181028.jpg.rar
07.11.2018  20:53         1 270 083 181028.rar
07.11.2018  20:53           486 766 181029.jpg.rar
07.11.2018  20:53        11 316 072 181029.rar
07.11.2018  20:53           486 766 181030.jpg.rar
07.11.2018  20:53        11 316 072 181030.rar
               7 файлов     36 678 597 байт
               2 папок   4 165 160 960 байт свободно

Dir результата в Dst при /N:-O

Код: Выделить весь код
 Содержимое папки C:\111\Dst

07.11.2018  20:49    <DIR>          .
07.11.2018  20:49    <DIR>          ..
07.11.2018  20:46        11 316 072 181027.rar
07.11.2018  20:46           486 766 181028.jpg.rar
07.11.2018  20:46           486 766 181029.jpg.rar
07.11.2018  20:46           486 766 181030.jpg.rar
               4 файлов     12 776 370 байт
               2 папок   4 189 036 544 байт свободно

Последний раз редактировалось UserX, 07-11-2018 в 21:00.

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

Отправлено: 20:47, 07-11-2018 | #30



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Архивирование каталога

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - архивирование и шифрование каталога Jalo Скриптовые языки администрирования Windows 10 24-12-2013 01:33
Любой язык - Сравнение списка файлов и каталога с файлами с копированием файлов из каталога jastreb83 Скриптовые языки администрирования Windows 0 10-04-2013 09:56
CMD/BAT - Архивирование с удалением каталога при помощи запуска батника из того же каталога HAMMER7 Скриптовые языки администрирования Windows 0 09-04-2012 20:29
CMD/BAT - Архивирование stolyar Скриптовые языки администрирования Windows 8 28-03-2010 13:33
Архивирование Maniacosaur Программирование и базы данных 6 27-08-2002 21:34




 
Переход