Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

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

Ответить
Настройки темы
CMD/BAT - Неправильно работает батник в Windows Server 2012

Старожил


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

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


Добрый день. Есть батник, в котором задается переменная %i% которой присваивается значение дня недели в виде цифры (понедельник -1, вторник -2 и т.д.), задается это так:
set /a y=%date:~6,4%
set /a m=1%date:~3,2%-100
set /a d=1%date:~0,2%-100
set /a i=(%y%-1901)*365 + (%y%-1901)/4 + %d% + (!(%y% %% 4))*(!((%m%-3)^&16))
set /a i=(%i%+(%m%-1)*30+2*(!((%m%-7)^&16))-1+((65611044^>^>(2*%m%))^&3))%%7+1

То же самое в Windows Server 2012 работает не правильно, переменной %i% присваивается 5-ти значное число, что это может быть ?

Отправлено: 16:27, 04-06-2013

 

Ветеран


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

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


Возможно, это связано с другим форматом даты в переменной %DATE%. Проверте выполнение команды
Код: Выделить весь код
ECHO %DATE%
.



Проверьте также такой вариант:


Код: Выделить весь код
@ECHO OFF

FOR /F %%I IN ('DATE /T') DO SET date=%%I

set /a y=%date:~6,4%
set /a m=1%date:~3,2%-100
set /a d=1%date:~0,2%-100
set /a i=(%y%-1901)*365 + (%y%-1901)/4 + %d% + (!(%y% %% 4))*(!((%m%-3)^&16))
set /a i=(%i%+(%m%-1)*30+2*(!((%m%-7)^&16))-1+((65611044^>^>(2*%m%))^&3))%%7+1

ECHO %i%

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

Отправлено: 17:04, 04-06-2013 | #2



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

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


Старожил


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

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


Цитата Georgio:
Возможно, это связано с другим форматом даты в переменной %DATE% »
Да, дело именно в этом, на других машинах: 04.06.2013
А на сервере 2012: 04-Jun-2013

Как лучше поменять вид даты в настройках сервера или можно как то переписать этот код ?

Отправлено: 17:21, 04-06-2013 | #3


Ветеран


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

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


foma24, переделал Ваш "батник" под Вашу ОС (Windows Server 2012):


Код: Выделить весь код
@ECHO OFF

FOR /F "tokens=2 delims=-" %%I IN ("%DATE%") DO (
 SET Month=%%I
)

set /a y=%date:~7,4%

set /a d=1%date:~0,2%-100

SETLOCAL ENABLEDELAYEDEXPANSION

FOR %%I IN (Jan01 Feb02 Mar03 Apr04 May05 Jun06 Jul07 Aug08 Sep09 Oct10 Nov11 Dec12) DO (
 SET "VAR=%%I"
 IF "!VAR:~0,-2!"=="%Month%" (
  SET /a m=!VAR:~-2!
))

set /a i=(%y%-1901)*365 + (%y%-1901)/4 + %d% + (^^!(%y% %% 4))*(^^!((%m%-3)^&16))

set /a i=(%i%+(%m%-1)*30+2*(^^!((%m%-7)^&16))-1+((65611044^>^>(2*%m%))^&3))%%7+1

ECHO %i%

PAUSE>nul


Проверить не на чем, но, по-моему, работает.
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:41, 04-06-2013 | #4


Старожил


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

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


Проверил, сегодня среда, т.е. должна быть цифра 3, выдает 5

Отправлено: 09:08, 05-06-2013 | #5



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
2012 - [решено] windows server 2012 - репликация групповых политик (не работает) Griffith Windows Server 2012/2012 R2 17 27-08-2015 08:03
Windows Server 2012 медленно работает сеть Pucckuu86IT Windows Server 2012/2012 R2 4 20-05-2013 11:38
CMD/BAT - Неправильно работает батник через Назначенные задания foma24 Скриптовые языки администрирования Windows 4 20-04-2013 15:25
MSFT SQL Server - Не работает ограничение оперативной памяти для SQL SERVER 2012 Donetsk Программирование и базы данных 0 17-03-2013 17:20
ISA Server 2004 неправильно работает на контроллере домена (Win2003) IksSafonsky Сетевые технологии 1 28-08-2007 11:42




 
Переход