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

Название темы: Архивирование каталога
Показать сообщение отдельно

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


Сообщения: 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

Название темы: Архивирование каталога