Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Как правильно перевести дату (http://forum.oszone.net/showthread.php?t=333846)

Valek271183 19-03-2018 20:54 2804279

Как правильно перевести дату
 
Я в 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 2804430

Valek271183, ИМХО, создавать себе проблемы, а потом героически их преодолевать - как это по нашему! :)
Не проще ли унифицировать у всех отображение даты, а особенно, у себя, в формат дд.мм.гггг - чего уж проще. А если у кого гггг.мм.дд?
Попробуйте такой костыль
Код:

%windir%\system32\cmd.exe /Q /c If "%Date:~2,1%"==" " (Date %Date:~3,6%2018) Else (Date %Date:~0,6%2018)

alpap 20-03-2018 17:17 2804467

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 2804479

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


alpap 20-03-2018 18:37 2804490

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


Время: 12:11.

Время: 12:11.
© OSzone.net 2001-