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

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

Ответить
Настройки темы
CMD/BAT - bat смена часового пояса по условию

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


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

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


Всем доброго дня
Уже долгое время ищу решение вопроса наболевшего. Есть программа на компьютере, которой что бы работать нужно менять часовой пояс. Задумал скрипт смены часового пояса по условию между Georgian Standard Time и Russian Standart Time через условие проверки текущего часового пояса. Сначало думал что через переменные (запихнуть часовой пояс и выходить на условие if), но это оказалось невыполнимо.
Кто имел дело, или работал с bat-файлами такого содержания, пожалуйста, подкинте выход из ситуации...

Отправлено: 16:42, 21-07-2018

 

Ветеран


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

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


Цитата sdaa113:
по условию »
Условие-то какое?

Отправлено: 16:55, 21-07-2018 | #2



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

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


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


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

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


Iska
if "Текущий часовой пояс" = Russian Standart Time
tzutil/s "Georgian Standard Time_dstoff"
else
tzutil/s "Russian Standart Time_dstoff"

Может не соответствовать синтаксису bat файл, приблизительный макет из головы
Нужно что бы по нажатию брал текущую timezone, сравнивал с стандартной, если соответствует стандартной - менять на Georgian, если не соответствует - менять на Russian Standart

Отправлено: 17:14, 21-07-2018 | #3


Ветеран


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

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


sdaa113, Вы понимаете, что если при исполнении «Текущий часовой пояс» окажется любым, кроме Russian Standart Time (а не только предполагаемый Georgian Standard Time), то результатом всегда будет «Russian Standart Time_dstoff»?

Вот примерная болванка:
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

for /f "usebackq delims=" %%i in (`tzutil.exe /g`) do set sCurrTimeZoneID=%%~i

if defined sCurrTimeZoneID (
	if /i "%sCurrTimeZoneID%" equ "Russian Standard Time" (
		tzutil.exe /s "Georgian Standard Time_dstoff"
	) else (
		tzutil.exe /s "Russian Standart Time_dstoff"
	)
) else (
	echo Can't determine current TimeZoneID
	exit /b 1
)

endlocal
exit /b 0

Последний раз редактировалось Iska, 21-07-2018 в 19:11. Причина: Убрал забытые echo


Отправлено: 17:36, 21-07-2018 | #4


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


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

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


Iska Спасибо за вариант, буду разбираться, пока выдает множество ошибок...

Отправлено: 18:01, 21-07-2018 | #5


Ветеран


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

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


Цитата sdaa113:
пока выдает множество ошибок... »
Покажите.

Отправлено: 18:08, 21-07-2018 | #6


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


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

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


Iska проблема с пробелами была, поправил заработало, осталось как то менять часовые пояса, спасибо огромное за большую часть помощи

https://ibb.co/iauo8d

Дошаманил с кодом, убрал echo и префикс exe у tzuntil - заработало в сторону первого условия, но почему то не работает через else, сижу думаю...

Последний раз редактировалось sdaa113, 21-07-2018 в 19:08.


Отправлено: 18:58, 21-07-2018 | #7


Ветеран


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

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


sdaa113, это я, балбес, не убрал echo из отладочного варианта. Поправил код выше. Приношу Вам свои извинения.

sdaa113, старайтесь не давать пакетным файлам имена внутренних или внешних команд, в данном случае — time.bat: это чревато труднораспознаваемыми ошибками.

Цитата sdaa113:
и префикс exe у tzuntil »
Это лишнее. «.exe» — оставьте.

Цитата sdaa113:
но почему то не работает через else, сижу думаю... »
Временно закомментируйте первую строку с «@echo off», выполните, когда не выполняется условие с else, покажите скриншот или текст.

Отправлено: 19:11, 21-07-2018 | #8


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


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

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


iska https://ibb.co/iFoO8d
Поставил Кабулу (+4:30 UTC), и Тбилиси, такая ошибка теперь падает

Iska, нашел ошибку... буква t в слове Russian Standart Zone, нужна была d, все, заработало Огромнейшее спасибо за помощь)

Отправлено: 19:18, 21-07-2018 | #9


Ветеран


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

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


sdaa113, теперь покажите Ваш код.

Ошибка прямо указывает на то, что использован недопустимый параметр. Также там указано, каким образом получить перечисление допустимых параметров.

Отправлено: 19:21, 21-07-2018 | #10



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [BAT\CMD] Универсальное обновление часового пояса (time zone) на Windows XP stanislav.poddubskiy@fb Скриптовые языки администрирования Windows 1 18-10-2014 19:31
Установка дополнительного часового пояса в трей в windows7 vladkzmnk Хочу все знать 0 07-10-2013 15:04
Смена часового пояса в домене Porsch Microsoft Windows NT/2000/2003 2 13-04-2010 10:26
Установка фиксированного часового пояса в домене Orgalit Microsoft Windows NT/2000/2003 4 21-10-2008 12:25
Смена часового пояса на рабочих станциях в домене. nghst Microsoft Windows NT/2000/2003 2 31-03-2008 09:59




 
Переход