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

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

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

Старожил


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


Конфигурация

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


Я в SFX архиве использую следующую команду, что бы если дата меньше 2018 года переводилась бы на текущий 2018 год.
%windir%\system32\cmd.exe /c date %date:~0,-4%2018
Команда работает почти везде кроме моего компьютера, потому что дата у меня отображается в днём недели, т.е. Пн 19.03.18
И окно CMD пишет Указана недопустимая дата. Введите новую дату (дд-мм-гг):
Как правильно написать эту команду, или, если так нельзя, что бы окно CMD закрывалось и SFX-архив мог запустить следующую команду ?

Отправлено: 20:54, 19-03-2018

 

Ветеран


Contributor


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

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


Valek271183, ИМХО, создавать себе проблемы, а потом героически их преодолевать - как это по нашему!
Не проще ли унифицировать у всех отображение даты, а особенно, у себя, в формат дд.мм.гггг - чего уж проще. А если у кого гггг.мм.дд?
Попробуйте такой костыль
Код: Выделить весь код
%windir%\system32\cmd.exe /Q /c If "%Date:~2,1%"==" " (Date %Date:~3,6%2018) Else (Date %Date:~0,6%2018)

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 20-03-2018 в 15:42.

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

Отправлено: 14:53, 20-03-2018 | #2



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

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


Ветеран


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

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


Valek271183,
можно еще так поступить, здесь корректируйте как душе угодно (поставил: дд-ММ-гггг)
(на всякий случай поставил ведущие нули)

Код: Выделить весь код
@echo off
for /f "tokens=1* delims==" %%a in ('"wmic path win32_localtime get Day,Month,Year /value|find "^=""') do set "%%a=0%%b"
echo %Day:~-3%-%Month:~-3%-%Year:~-5%
pause
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:17, 20-03-2018 | #3


Ветеран


Contributor


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

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


alpap, Не могу понять, почему в Вашем решении реально нужно -3 и -5, а не -2 и -4
Слегка переиначил Ваш вариант
Код: Выделить весь код
@echo off
cls

for /f "delims=" %%a in ('"wmic path win32_localtime get Day,Month,Year /value"') Do Set /a %%a+10000

echo %Day:~-2%-%Month:~-2%-%Year:~-4%

pause

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Отправлено: 18:05, 20-03-2018 | #4


Ветеран


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

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


megaloman,
wmic заковыристая штука, там нередко (как в данном случае) то пробел лишний приблудится, то символ левый
(поставив по логике и кавычки можно убедиться)

Отправлено: 18:37, 20-03-2018 | #5



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Как перевести деньги с webmoney CrashTest Хочу все знать 6 04-08-2016 10:44
Прочие БД - Как перевести SQL в MD5 VM007 Программирование и базы данных 4 24-10-2008 11:13
Как перевести с Английского APOSTOL Программирование и базы данных 5 21-01-2004 16:46
как перевести Opera 6.0 Lebedev Хочу все знать 4 18-03-2002 23:22




 
Переход