Форум программистов, компьютерный форум, киберфорум
Наши страницы
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.70/10: Рейтинг темы: голосов - 10, средняя оценка - 4.70
BANKIR
0 / 0 / 0
Регистрация: 05.04.2012
Сообщений: 56
1

Создание имени архива (кодировка дат, чисел)

05.04.2012, 17:03. Просмотров 1766. Ответов 2
Метки нет (Все метки)

Здравствуйте, помогите пожалуйста, дилетанту.
Необходимо создать бат файл архивирующий данные, сложность в название архива.
Надо создать архив который сам себя назовет в такой форме:
INDMNOOO.llS где
IN латинские символы (тип отчетности)
D дата создания архива в которой есть число месяца, но формат их должен быть составлен по такому способу (1-9,a-v) если дата 10 то число заменяется на "a" а 11 на "b"
M число месяца по подобной схеме (1-9,a-c) кодируется на подобии даты месяца
N номер сообщения по данному типу отчетности (1-9 a-z) для каждого типа отчетности ведется свой номер посылки с начала дня.
OOO условный почтовый номер
llS обязательные латинские символы.
Все что мне было по силу так это
Windows Batch file
1
2
3
@echo off
@set /p namearh="Name_Arhiv - "
@"C:\Program Files\WinRAR\Winrar.exe" a D:\test_bat\%namearh%.zip D:\test_bat\*.rtf
если можно по проще объясните, не очень понимаю я это.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.04.2012, 17:03
Ответы с готовыми решениями:

Создание папки с датой в имени и распаковка в неё архива
Есть папка на диске С:\Arhiv в нем есть архивы по датам! надо что бы брал...

Создание запароленного 7z-архива
Здравствуйте помогите с батником разобраться, он все нормально делает тока мне...

Создание md5 по последнему добавлению архива
Люди добрые, помогите найти решение. Задача следующего плана. Есть сервер,...

Создание SFX-архива с использованием WinRAR
Создаю в WinRar SFX архив, в параметрах SFX указываю выполнить после...

Скрипт создания 7z архива: добавить дату к названию архива
Добрый день! Заранее извиняюсь если пишу не в той ветке форума. Есть скрипт:...

2
dn90
69 / 59 / 3
Регистрация: 07.09.2010
Сообщений: 87
10.04.2012, 14:38 2
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
%date:~6,4% - год
%date:~3,2% - мес.
%date:~0,2% - число
это на памятку
 
-----
@echo off
 
rem Имя
echo Enter name
set /p name=
 
rem День
set D_=%date:~0,2%
if %date:~0,2% GTR 9 call :_D
 
rem Месяц
set M_=%date:~3,2%
if %date:~3,2% GTR 9 call :_M
 
 
 
:_D
if %date:~0,2%==10 set D_=A
if %date:~0,2%==11 set D_=B
if %date:~0,2%==12 set D_=C
if %date:~0,2%==13 set D_=D
if %date:~0,2%==14 set D_=E
if %date:~0,2%==15 set D_=F
if %date:~0,2%==16 set D_=G
if %date:~0,2%==17 set D_=H
if %date:~0,2%==18 set D_=I
if %date:~0,2%==19 set D_=J
if %date:~0,2%==20 set D_=K
if %date:~0,2%==21 set D_=L
if %date:~0,2%==22 set D_=M
if %date:~0,2%==23 set D_=N
if %date:~0,2%==24 set D_=O
if %date:~0,2%==25 set D_=P
if %date:~0,2%==26 set D_=Q
if %date:~0,2%==27 set D_=R
if %date:~0,2%==28 set D_=S
if %date:~0,2%==29 set D_=T
if %date:~0,2%==30 set D_=U
if %date:~0,2%==31 set D_=V
goto :EOF
 
 
 
:_M
if %date:~3,2%==10 set M_=A
if %date:~3,2%==11 set M_=B
if %date:~3,2%==12 set M_=C
goto :EOF
Добавлено через 3 минуты
N номер сообщения по данному типу отчетности (1-9 a-z) для каждого типа отчетности ведется свой номер посылки с начала дня.
OOO условный почтовый номер
llS обязательные латинские символы.
а это я не понял
как номер вычисляться будет? откуда брать предыдущие номера?
1
BANKIR
0 / 0 / 0
Регистрация: 05.04.2012
Сообщений: 56
11.04.2012, 12:07  [ТС] 3
У меня примерно такой же вариант получился сегодня...
а насчет первого значения надо число вывести сколько их за сегодня было я решил что пользователь сам писал тип файла это сохраняется в файле надо только сосчитать сколько последних одинаковых строк по переменой что дал пользователь и записать в имя но у меня не получается командой find видимо переменной считать не хочет , for к сожалению не понимаю как, много примеров видел но так и не понял как он работает..(

Добавлено через 2 часа 34 минуты
Здравствуйте прошу прощение за прошлое сообщение….
по задание N номер сообщения по одному из типов отчетности…
лично я решил что пользователь сам водит тип отчетности который в последствии записывается в файл там считается количество сообщений по данному типу отчетности за сегодня и выдается на подстановку с 1-9 и с a-z как и прошлые значения сейчас не могу понять ка вытащить число одинаковых строк из файла прямо в переменную для дальнейших действий подскажите, пожалуйста, этот момент пробую командами find с ключом /с но почему то выдается ошибка неправильный формат параметра…….пишу так:
Windows Batch file
1
2
3
@echo on
set in=r
find  /c  %in% C:\test_bat\tip_otceta.txt
пробовал добавить /I все ровно не выходит

Добавлено через 11 секунд
Здравствуйте прошу прощение за прошлое сообщение….
по задание N номер сообщения по одному из типов отчетности…
лично я решил что пользователь сам водит тип отчетности который в последствии записывается в файл там считается количество сообщений по данному типу отчетности за сегодня и выдается на подстановку с 1-9 и с a-z как и прошлые значения сейчас не могу понять ка вытащить число одинаковых строк из файла прямо в переменную для дальнейших действий подскажите, пожалуйста, этот момент пробую командами find с ключом /с но почему то выдается ошибка неправильный формат параметра…….пишу так:
Windows Batch file
1
2
3
@echo on
set in=r
find  /c  %in% C:\test_bat\tip_otceta.txt
пробовал добавить /I все ровно не выходит

Добавлено через 18 часов 32 минуты
Здравствуйте, спасибо dn90 за помощь.
все сделал не совсем так как предполагал но все же…..
по заданию разрешили в водить число сообщений по типу файла пользователем, что в разы облегчило задачу вот что получилось в конце, если есть более легкий вариант с интересом рассмотрю…..
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
@echo oFF
set s=%date:~0,2%
if /I %s% LEQ 9 set s=%date:~1,1%
if /I %s% EQU 10 set s=a
if /I %s% EQU 11 set s=b
if /I %s% EQU 12 set s=c
if /I %s% EQU 13 set s=d
if /I %s% EQU 14 set s=e
if /I %s% EQU 15 set s=f
if /I %s% EQU 16 set s=g
if /I %s% EQU 17 set s=h
if /I %s% EQU 18 set s=i
if /I %s% EQU 19 set s=j
if /I %s% EQU 20 set s=k
if /I %s% EQU 21 set s=l
if /I %s% EQU 22 set s=m
if /I %s% EQU 23 set s=n
if /I %s% EQU 24 set s=o
if /I %s% EQU 25 set s=p
if /I %s% EQU 26 set s=q
if /I %s% EQU 27 set s=r
if /I %s% EQU 28 set s=s
if /I %s% EQU 29 set s=t
if /I %s% EQU 30 set s=u
if /I %s% EQU 31 set s=v
set /a v
set V=%S%
set l=%date:~3,2%
if /I %l% LEQ 9 set l=%date:~4,1%
if /I %l% EQU 10 set l=a
if /I %l% EQU 11 set l=b
if /I %l% EQU 12 set l=c
if /I %l% EQU 13 set l=d
if /I %l% EQU 14 set l=e
if /I %l% EQU 15 set l=f
if /I %l% EQU 16 set l=g
if /I %l% EQU 17 set l=h
if /I %l% EQU 18 set l=i
if /I %l% EQU 19 set l=j
if /I %l% EQU 20 set l=k
if /I %l% EQU 21 set l=l
if /I %l% EQU 22 set l=m
if /I %l% EQU 23 set l=n
if /I %l% EQU 24 set l=o
if /I %l% EQU 25 set l=p
if /I %l% EQU 26 set l=q
if /I %l% EQU 27 set l=r
if /I %l% EQU 28 set l=s
if /I %l% EQU 29 set l=t
if /I %l% EQU 30 set l=u
if /I %l% EQU 31 set l=v
if /I %l% EQU 32 set l=w
if /I %l% EQU 33 set l=x
if /I %l% EQU 34 set l=y
if /I %l% EQU 35 set l=z
set /a m
set m=%l%
set /p in="B BeDiTe NoMeR soobshheniy 3a sevodny - "
if /I %in% EQU 1 set in=1
if /I %in% EQU 2 set in=2
if /I %in% EQU 3 set in=3
if /I %in% EQU 4 set in=4
if /I %in% EQU 5 set in=5
if /I %in% EQU 6 set in=6
if /I %in% EQU 7 set in=7
if /I %in% EQU 8 set in=8
if /I %in% EQU 9 set in=9
if /I %in% EQU 10 set in=a
if /I %in% EQU 11 set in=b
if /I %in% EQU 12 set in=c
if /I %in% EQU 13 set in=d
if /I %in% EQU 14 set in=e
if /I %in% EQU 15 set in=f
if /I %in% EQU 16 set in=g
if /I %in% EQU 17 set in=h
if /I %in% EQU 18 set in=i
if /I %in% EQU 19 set in=j
if /I %in% EQU 20 set in=k
if /I %in% EQU 21 set in=l
if /I %in% EQU 22 set in=m
if /I %in% EQU 23 set in=n
if /I %in% EQU 24 set in=o
if /I %in% EQU 25 set in=p
if /I %in% EQU 26 set in=q
if /I %in% EQU 27 set in=r
if /I %in% EQU 28 set in=s
if /I %in% EQU 29 set in=t
if /I %in% EQU 30 set in=u
if /I %in% EQU 31 set in=v
if /I %in% EQU 32 set in=w
if /I %in% EQU 33 set in=x
if /I %in% EQU 34 set in=y
if /I %in% EQU 35 set in=z
set /a j
set j=%in%
set x=%CD%
cd /d "C:\finish"
"C:\Program Files (x86)\WinRAR\WinRAR.exe" a "%x%\IN%v%%m%%j%900.iis" "2027*.*"
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.04.2012, 12:07

Создание документа с текущими датой и временем в имени
Вот так можно быстро создавать неповторяющиеся в отношении имени документы или...

Создание файла, часть имени которого - нумерованная строка
Добрый день. Сейчас постараюсь объяснить... Есть БАТ @echo off chcp 1251...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru