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

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

Ответить
Настройки темы
CMD/BAT - [решено] Юлианская дата

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


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

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


Нужно добавить в батник код, чтобы при переименовании файла (это будет выполняться ежедневно) с помощью rename автоматически в конце файла добавлялась юлианская дата (день). Как это сделать?.....

Отправлено: 22:55, 13-02-2015

 

Аватара для V!RTuE

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


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

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


Вот пример, если надо переименовать файл Report.txt, находящийся в той же папке, где и сам батник:
Код: Выделить весь код
@echo off

set day=%date:~0,2%
if %day:~0,1%==0 set day=%day:~1,1%
set mes=%date:~3,2%
if %mes:~0,1%==0 set mes=%mes:~1,1%
set god=%date:~6,4%

set /a JDN=%day%+((153*(%mes%+(12*((14-%mes%)/12))-3)+2)/5)+(365*(%god%+4800-((14-%mes%)/12)))+((%god%+4800-((14-%mes%)/12))/4)-((%god%+4800-((14-%mes%)/12))/100)+((%god%+4800-((14-%mes%)/12))/400)-32045

ren "%~dp0Report.txt" "Report_%JDN%.txt"

exit /b

Последний раз редактировалось V!RTuE, 14-02-2015 в 00:47.

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

Отправлено: 00:40, 14-02-2015 | #2



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

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


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


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

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


А как сделать, чтобы день текущего года был указан? Т.е. был файл bin_ors.txt. На сегодня должен называть bin_ors.txt.50 . Т.е 31 день в январе и плюс 19 дней на сегодня февраля.

Отправлено: 08:29, 19-02-2015 | #3


Аватара для gora

Ушёл из жизни


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

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


Цитата alex1985khv:
А как сделать, чтобы день текущего года был указан? »
Код: Выделить весь код
@Echo Off
:: Дата дня Х в формате DD MM YYYY. Ведущие нули должны присутствовать. Пример записи для 31 декабря 2014 года.
Set dateX=31 12 2014
:: Текущая дата
For /f %%i In ('WMIC OS Get LocalDateTime^|Find "."') Do Set DT=%%i

Call :JDat %dateX% Day
Call :JDat %DT:~6,2% %DT:~4,2% %DT:~0,4% Day
Echo Прошло (дней) - %Day%
Pause>Nul
Exit

:JDat
Set /a m=1%2-114,mm=m/12,mmm=%3+mm,%4=1%1+367*(m+12-mm*12)/12-3*(mmm/100+49)/4+1461*mmm/4-%4
GoTo:EOF
Это сообщение посчитали полезным следующие участники:

Отправлено: 09:49, 19-02-2015 | #4



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Ошибка - Дата сбрасывается eXstra Microsoft Windows 2000/XP 18 12-01-2013 02:38
системная дата sergeyhopper Microsoft Windows 2000/XP 2 18-11-2005 11:13
дата и время в С++ ptt Программирование и базы данных 5 02-09-2004 09:45
время и дата hameg Программное обеспечение Linux и FreeBSD 16 29-09-2003 21:02
Системная дата VladNik Microsoft Windows 95/98/Me (архив) 2 07-08-2002 01:35




 
Переход