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

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

Ответить
Настройки темы
CMD/BAT - [решено] Как с помощью скрипта создать архив с динамичным названием учитывая нужные критерии

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


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

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


Есть несколько файлов (количество файлов постоянно меняется), с разным названием и расширением (Например: Документ1.doc, Новый документ.xls, *.dbf и т.д. и т.п.). Нужно эти файлы заархивировать с помощью Winrar .
Но основная проблема не в самой архивации, а в создании нужного имени архива. Например, нужно заархивировать файлы в rar-архив с названием этого архива P20aabc1.P01, где:

Р и Р01…Р99(причем вместо Р может быть любая буква латинского/английского алфавита которая выбирается пользователем). При формировании названия архива, нужно чтобы скрипт «спрашивал», что писать в расширении архива Р01 или Р02…Р99 и соответственно если пользователь ответит С01, то название будет типа С20аabc1.С01;

20 - сегодняшнее число месяца;

а - буквенный «номер» месяца (a-январь;b-февраль;c-март; d-апрель; e-май; f-июнь; g-июль; h-август; i-сентябрь; j-октябрь; k-ноябрь; l-декабрь;

abc- три буквы латинского алфавита которые есть постоянные(статичные) в отличие от букв обозначающих месяц создание архива они неизменны в отличии от остальных символов;

1 - это номер архива по порядку от 1 до 9(после девятого архива номер снова должен начинаться с 1, прежде всего это связано с тем, что название созданного архива должно соответствовать 8 символом название и 3символа расширение архива).

Вероятность, что название архива в один день будет одинакова – ничтожна, ибо символы Р и Р01 меняются в зависимости от выбора пользователя(можно выбрать А и А01…А99).

Между первой буквой названия архива и расширением (Р и Р01) есть взаимосвязь, то есть в названии архива не должно быть А20aabc1.P01 или P20aabc1.А01 – должно быть P20aabc1.P01 или А20aabc1.А01.

1. затем скопировать в архивную директорию C:\YYYY\MM\DD\ (Например сегодня папка архива будет – С:\2011\01\20\);
2. потом этот файл скопировать в другую папку D:\mail\out.

Возможно ли процесс создания названия архивного файла написать с помощь скрипта или тут поможет только язык программирования?

Отправлено: 14:18, 20-01-2011

 

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


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

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


Цитата yaoleg2:
Нумерации после 9 должна снова идти по "кругу" 1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9, ибо вероятность создания двух архивов с одинаковыми названиями ничтожна из-за того что расширение архива в основном разное. »
Условия изменились, все-таки архивы иногда получаются с одинаковыми названиями, поэтому нужно сделать продолжение нумерации архивов после 9 архива начинать нумерацию по латинскому алфавиту, то есть с: A, B, C, и т.д. (1,2,3,4,5,6,7,8,9, a,b, c, ...) Насколько это реально?
Спасибо за помощь!!!

Отправлено: 09:50, 07-11-2013 | #11



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

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


Ветеран


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

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


Цитата yaoleg2:
Условия изменились, все-таки архивы иногда получаются с одинаковыми названиями, поэтому нужно сделать продолжение нумерации архивов после 9 архива начинать нумерацию по латинскому алфавиту, то есть с: A, B, C, и т.д. (1,2,3,4,5,6,7,8,9, a,b, c, ...) Насколько это реально? »
Насколько реально, что и букв латинского алфавита не хватит? Может, не стоит изобретать себе на голову приключения:
Цитата yaoleg2:
Нумерации после 9 должна снова идти по "кругу" 1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9, ибо вероятность создания двух архивов с одинаковыми названиями ничтожна из-за того что расширение архива в основном разное. »
а потом их героически решать?

Отправлено: 10:06, 07-11-2013 | #12


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


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

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


Iska, такая ситуация бывает редко, но когда бывает перезаписываются некоторые архивы, что не есть хорошо

Отправлено: 21:17, 07-11-2013 | #13


Ветеран


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

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


yaoleg2, знаете выход из этой ситуации? Достаточно просто добавлять к имени архива дату и время его создания. Без изобретения всяких игр с нумерацией цифрами, а затем латинским алфавитом.

Отправлено: 22:07, 07-11-2013 | #14


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


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

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


Iska, все было-бы проще если б не правила создания архива, которым эти архивы и должны соответствовать иначе мы будем наказаны
Или может быть, можно как-нибудь проверять архивную директорию на наличие файла с таким названием и если есть такое название архива менять цифру 1 на 2 или 3 ...9 ?

Отправлено: 22:23, 07-11-2013 | #15


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


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

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


А какие проблемы добавить if exist ?

Например:
Код: Выделить весь код
if not "%n:~1,2%"=="%day%" (set i=1) else (set /a i=%n:~0,1%+1)
:loop
if exist ... (
  set /A i+=1
  goto loop
)

Да и с заменой номера на букву проблем нет:

Код: Выделить весь код
Setlocal EnableDelayedExpansion
set ABC= 123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
set i=%1

set d=!ABC:~%i%,1!
echo d=%d%
REM теперь в переменной d цифра 1-9 или буква A-Z
Только надо позаботиться, чтобы i не превысило 35.

-------
Разумный человек приспосабливается к миру, неразумный пытается приспособить мир к себе. Поэтому прогресс делают люди неразумные. (Дж. Б. Шоу)


Последний раз редактировалось Гуллипут, 08-11-2013 в 14:56. Причина: Дополнение

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

Отправлено: 14:16, 08-11-2013 | #16



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Установка - [решено] Обновления от Microsoft: нужные, не нужные. Польза или вред. flev45 Microsoft Windows 7 18 29-09-2010 13:05
Разное - [HELP] Как создать SFX-CAB архив? WindLiS Наборы обновлений для Windows XP/2003/Windows 7 8 06-03-2010 13:02
[решено] Как с помощью CMD(BAT) запустить запароленный sfx архив! ofcoss Автоматическая установка приложений 7 10-07-2009 00:41
[решено] Как создать учетные записи с помощью скрипта? fm72 Microsoft Windows NT/2000/2003 4 29-09-2005 14:01
Как создать файл с помощью CGI скрипта. lehha Программирование и базы данных 1 20-11-2003 09:48




 
Переход