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

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

Ответить
Настройки темы
CMD/BAT - нумерация формируемых архивов

Новый участник


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

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


Доброе утро!
есть такой скрипт:
:arj311
IF NOT EXIST "%script_root%%1\*.arj" (
echo %time:~0,8% %date% >> "%script_root%logs\311p.log"
"%utils_folder%arj32.exe" a -e "%script_root%%1\%1%bik%%date%01.arj" "%script_root%%1\SBC*.txt"
set num=01
) ELSE (
for /f "tokens=1 delims=." %%a in ('dir %script_root%%1\*.arj /b') do (
set num=%%a
)
set num=!num:~-2!
echo %time:~0,8% %date% >> "%script_root%logs\311p.log"
del /f /s /q "%script_root%%1\*!num!.arj" >> "%script_root%logs\311p.log"
If !num! LSS 10 set num=!num:~-1!
set /a num=!num!+1
If !num! LSS 10 set num=0!num!
echo %time:~0,8% %date% >> "%script_root%logs\311p.log"
"%utils_folder%arj32.exe" a -e "%script_root%%1\%1%bik%%date%!num!.arj" "%script_root%%1\SBC*.txt"
)
del /f /s /q "%script_root%%1\SBC*.txt" >> "%script_root%logs\311p.log"
exit /b

немного подробней:
пихаем sbc*.txt файлы в архив arj типа \%1%bik%%date%!num!.arj"
где %1 будет типА или типВ
%bik просто бик
а вот !num! железно почемуто делает только 01 архив.

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

Отправлено: 08:31, 16-07-2014

 

Ветеран


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

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


umagonj, мы должны гадать по куску пакетного файла? Что такое «%script_root%», «%utils_folder%» и т.д, и т.п.

Отправлено: 06:30, 17-07-2014 | #2



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

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


Новый участник


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

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


хм, не думал что эти переменные могут быть важны
"%script_root%%1\*.arj = директория где лежат всякие бат файлы
%1 уже писал, это папка в зависимости от типа файла (т.е А или B)
"%utils_folder%arj32.exe" - место где лежат утилиты.

вопрос был не в етом: я как человек, недавно назначенный за работу батников, немного не понимаю что делают те или иные функции
вопрос в чем: КАК именно он определяет что пора делать архив под номером 2, а не начинать с 1го?

Цитата:
IF NOT EXIST "%script_root%%1\*.arj" (
echo %time:~0,8% %date% >> "%script_root%logs\311p.log"
"%utils_folder%arj32.exe" a -e "%script_root%%1\%1%bik%%date%01.arj" "%script_root%%1\SBC*.txt"
set num=01
)
я так понимаю это просто создание архива под номером 1

Цитата:
ELSE (
for /f "tokens=1 delims=." %%a in ('dir %script_root%%1\*.arj /b') do (
set num=%%a
)
set num=!num:~-2!
echo %time:~0,8% %date% >> "%script_root%logs\311p.log"
del /f /s /q "%script_root%%1\*!num!.arj" >> "%script_root%logs\311p.log"
а тут он как? он просто смотрит есть ли в "%script_root%%1\*.arj" архив , и если есть , то он делает его со следующим номером?

спасибо, проблема не в етом куске была.
перемещал архив в папку отправления, а копию "%script_root%%1\*.arj" не оставлял, вот он и клепал архив 01

Отправлено: 12:34, 18-07-2014 | #3


Ветеран


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

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


Цитата umagonj:
хм, не думал что эти переменные могут быть важны »
Цитата umagonj:
спасибо, проблема не в етом куске была. »
umagonj, дело не в том, важны или не важны, в том или не в том «куске». Дело в том, что Вы видите всю информацию, а выкладываете частичную и предлагаете по этой частичной информации гадать.

Последний раз редактировалось Iska, 21-07-2014 в 16:45. Причина: Добавил случайно удалённый кусок тэга BBCode

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

Отправлено: 16:31, 18-07-2014 | #4


Новый участник


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

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


Iska, понял вас, буду иметь ввиду эту ошибку.
вообщем разобраться так и не получилось.
что хотел сказать:
нужно создание архива arj формата

set dir=c:\311fiz\files\
arj32 a -e BN11751%date:~8,4%%date:~3,2%%date:~0,2%0001 %dir%*.*

BN - тип посылки (неизменно)
11751 - бик (неизменно)
дата в формате годмесяцчисло ( у меня вышло только как %date:~8,4%%date:~3,2%%date:~0,2% )
0001 - номер сообщения за день
%dir%*.* - собсвтенно забор любых файлов из c:\311fiz\files\

нужно чтобы он создавал архив арж в папке c:\311fiz\ с именем BN117511407210001.arj

а если уже есть такой архив , BN117511407210002.arj
если 0002 есть то 0003 и т.д.

Отправлено: 15:00, 21-07-2014 | #5



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
2010 - Нумерация в Колонтитулах odpride Microsoft Office (Word, Excel, Outlook и т.д.) 2 23-08-2013 10:43
Нумерация фотографий leonid64 Цифровое изображение 2 07-04-2012 19:11
2003/XP/2000 - Нумерация MrGauss Microsoft Office (Word, Excel, Outlook и т.д.) 4 18-10-2011 00:29
Установка - Нумерация жёстких дисков twinzzz75 Microsoft Windows 2000/XP 7 12-07-2010 16:09
2007 - Нумерация Streamnewal Microsoft Office (Word, Excel, Outlook и т.д.) 2 14-06-2010 20:58




 
Переход