Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Юлианская дата (http://forum.oszone.net/showthread.php?t=295504)

alex1985khv 13-02-2015 22:55 2471062

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

V!RTuE 14-02-2015 00:40 2471100

Вот пример, если надо переименовать файл 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


alex1985khv 19-02-2015 08:29 2473318

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

gora 19-02-2015 09:49 2473331

Цитата:

Цитата 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



Время: 21:16.

Время: 21:16.
© OSzone.net 2001-