|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] формат даты для имени нового архива %date:~6,4%\%date:~3,2%\%~n1_%date:~0,2% |
|
CMD/BAT - [решено] формат даты для имени нового архива %date:~6,4%\%date:~3,2%\%~n1_%date:~0,2%
|
Старожил Сообщения: 301 |
Профиль | Отправить PM | Цитировать Задача - батник, для ежедневной плановой архивации данных при помощи 7-z
Найдено много примеров, справочник по командам... все есть все готово - работает. В процессе, просто перенял конструкцию из примера, где вновь созданный архив именовался значением текущей даты, но так как ":" или "/" в именах файлов использоваться не могут переменная %Date% в стандартном виде не могла быть использована, Автор решил проблему таким образом... присвоив переменной которая впоследствии выступает именем архива следующее значение ...%date:~6,4%_%date:~3,2%_%date:~0,2% Очень много примеров в сети с использованием такой схемы, но нигде мне так и не удалось получить обяснения этих загадочных "6,4" , "3,2" после унарного оператора "~" .... Очень хотелось бы узнать, что это за значения, откуда они берутся, или как вычисляются? |
|
Отправлено: 16:24, 04-08-2010 |
Старожил Сообщения: 426
|
Профиль | Отправить PM | Цитировать хм... а set /? Вы не хотите попробовать? А еще прямо в начале радела по скриптам есть полезная ссылка...
А если в кратце, то Если вместо %переменная% взять %переменная:~начало,длина% - получим часть строки |
------- Отправлено: 16:37, 04-08-2010 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 301
|
Профиль | Отправить PM | Цитировать прозрение...
Спасибо. Юзверь, хоть и опытный, - все равно юзверь PS: А в справке так и не удалось найти ничего на этот счет... Set /? тоже ничего особенного не дает - кажет, что "~" среди прочих - унарный оператор (принцип - то изначально был понятен, я почему-то сразу не сообразил, что это позиция вхождения и кол-во символов через запете )... Так в каком разделе все таки можно почитать "Маркса" ? |
------- Отправлено: 18:51, 04-08-2010 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать |
Отправлено: 21:50, 04-08-2010 | #4 |
Старожил Сообщения: 301
|
Профиль | Отправить PM | Цитировать Имея небольшой опыт объектно-ориентированного программирования, я почему-то был полностью уверен, что переменная %DATE% имеет соответствующий тип данных - "дата", а получается что %DATE% - это "строка"?
В этой среде получается нет разделения на типы данных, они все строковые? |
|
------- Отправлено: 08:03, 05-08-2010 | #5 |
Ушёл из жизни Сообщения: 6021
|
Профиль | Отправить PM | Цитировать Небольшая памятка:
@Echo Off :: Кодировка файла 'Кирилица DOS' (866) Set var=123456789 Echo. Echo Запись Значение Echo. Echo Переменная полностью %%var%% %var% Echo. Echo Первые три символа %%var:~0,3%% %var:~0,3% Echo Последние три символа %%var:~-3%% %var:~-3% Echo Три символа начиная с шестого %%var:~5,3%% %var:~5,3% Echo Без первых трех символов %%var:~3%% %var:~3% Echo Без последних трех символов %%var:~0,-3%% %var:~0,-3% Echo Без первых двух и последних трех %%var:~2,-3%% %var:~2,-3% Echo. Echo Замена части переменной (45 на abc) %%var:45=abc%% %var:45=abc% Echo Замена части переменной и символов Echo до нее (23, и все что до этого, на xyz) %%var:*23=xyz%% %var:*23=xyz% Echo Удаление части переменной (567) %%var:567=%% %var:567=% Pause>Nul |
Последний раз редактировалось gora, 05-08-2010 в 09:39. Отправлено: 08:43, 05-08-2010 | #6 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Команды в Win (date /T). Выбор формата даты. | timur_m | Скриптовые языки администрирования Windows | 26 | 10-02-2019 05:52 | |
Разное - [решено] Computer Management is not up-to-date | stolyar | Microsoft Windows 7 | 2 | 12-03-2010 10:05 | |
MySQL - Не могу добавить $date в DB MySQL | darksmoke | Программирование и базы данных | 4 | 09-05-2008 19:07 | |
Date /t | mihmih | Microsoft Windows NT/2000/2003 | 1 | 23-01-2006 10:33 | |
Date\Time в javascript | boneheap | Вебмастеру | 1 | 13-10-2004 11:11 |
|