|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Неправильно работает батник в Windows Server 2012 |
|
CMD/BAT - Неправильно работает батник в Windows Server 2012
|
Старожил Сообщения: 186 |
Добрый день. Есть батник, в котором задается переменная %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
|
Профиль | Отправить PM | Цитировать Возможно, это связано с другим форматом даты в переменной %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
|
Профиль | Отправить PM | Цитировать Цитата Georgio:
А на сервере 2012: 04-Jun-2013 Как лучше поменять вид даты в настройках сервера или можно как то переписать этот код ? |
|
Отправлено: 17:21, 04-06-2013 | #3 |
Ветеран Сообщения: 874
|
Профиль | Отправить 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
|
Профиль | Отправить PM | Цитировать Проверил, сегодня среда, т.е. должна быть цифра 3, выдает 5
|
|
Отправлено: 09:08, 05-06-2013 | #5 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
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 |
|