Показать полную графическую версию : [решено] Как правильно перевести дату
Valek271183
19-03-2018, 20:54
Я в SFX архиве использую следующую команду, что бы если дата меньше 2018 года переводилась бы на текущий 2018 год.
%windir%\system32\cmd.exe /c date %date:~0,-4%2018
Команда работает почти везде кроме моего компьютера, потому что дата у меня отображается в днём недели, т.е. Пн 19.03.18
И окно CMD пишет Указана недопустимая дата. Введите новую дату (дд-мм-гг):
Как правильно написать эту команду, или, если так нельзя, что бы окно CMD закрывалось и SFX-архив мог запустить следующую команду ?
megaloman
20-03-2018, 14:53
Valek271183, ИМХО, создавать себе проблемы, а потом героически их преодолевать - как это по нашему! :)
Не проще ли унифицировать у всех отображение даты, а особенно, у себя, в формат дд.мм.гггг - чего уж проще. А если у кого гггг.мм.дд?
Попробуйте такой костыль%windir%\system32\cmd.exe /Q /c If "%Date:~2,1%"==" " (Date %Date:~3,6%2018) Else (Date %Date:~0,6%2018)
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
megaloman
20-03-2018, 18:05
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
megaloman,
wmic заковыристая штука, там нередко (как в данном случае) то пробел лишний приблудится, то символ левый
(поставив по логике и кавычки можно убедиться)
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.