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

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

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

Аватара для Гена829999

Пользователь


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

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


Здравствуйте!
Как в этом коде реализовать вывод полных названий дней недели?
Скрытый текст
Код: Выделить весь код
@Echo off
Echo.>"%temp%\~.ddf"
>nul makecab /d RptFileName="%temp%\~.rpt" /d InfFileName="%temp%\~.inf" -f "%temp%\~.ddf"
for /f "tokens=4,5,6,7,8,9 delims=: " %%a in ('type "%temp%\~.rpt"') do (
	if not defined m call :month %%a
	if not defined current-date (call set "current-date=%%b-%%m%%-%%f")
for /f "tokens=3" %%w in ('type "%TEMP%\~.rpt"') do if not defined current-weekday set "current-weekday=%%w"
for /f "tokens=6" %%t in ('type "%TEMP%\~.rpt"') do if not defined current-time set "current-time=%%t"
)
Del /q "%temp%\~.*"
Echo.Дата: %current-date% День: %current-weekday% Время: %current-time%
Pause&Exit

:month
if "%1"=="Jan" set "m=Января"
if "%1"=="Feb" set "m=Феврвля"
if "%1"=="Mar" set "m=Матра"
if "%1"=="Apr" set "m=Апреля"
if "%1"=="May" set "m=Мая"
if "%1"=="Jun" set "m=Июня"
if "%1"=="Jul" set "m=Июля"
if "%1"=="Aug" set "m=Августа"
if "%1"=="Sep" set "m=Сентября"
if "%1"=="Oct" set "m=Октября"
if "%1"=="Nov" set "m=Ноября"
if "%1"=="Dec" set "m=Декабря"
Exit /B

Код взят отсюда: http://forum.oszone.net/post-2856375.html#post2856375

Отправлено: 15:44, 16-11-2021

 

Аватара для Гена829999

Пользователь


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

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


Цитата megaloman:
изменённый вариант: »
Еще Оптимистичный и Оптимальный вариант!
И в 3 раза меньше
Спасибо, Благодарю!
Очень Помогли!

Отправлено: 12:40, 17-11-2021 | #11



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

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


Ветеран


Contributor


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

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


Гена829999, А вот фэншуйный вариант. Если не принципиально использование makecab с созданием трёх временных файлов, то без этого извращения (с моей точки), хоть длиннее, но без файлов:
Код: Выделить весь код
@Echo Off
cls
	For %%i In ("01=Января" "02=Февраля" "03=Марта" "04=Апреля" "05=Мая" "06=Июня" "07=Июля" "08=Августа" "09=Сентября" "10=Октября" "11=Ноября" "12=Декабря") Do Set "@@M%%~i"
	For %%i In ("1=Понедельник" "2=Вторник" "3=Среда" "4=Четверг" "5=Пятница" "6=Суббота" "7=Воскресенье") Do Set "@@D%%~i"

	FOR /F "tokens=2 delims==." %%d in ('WMIC OS GET LOCALDATETime /VALUE') DO Set "DateTime=%%d"

	Set "Month=%DateTime:~4,2%"
	Call :NdayInWeek %DateTime:~6,2% %DateTime:~4,2% %DateTime:~0,4% "Wday"

	Call Set "current-date=%DateTime:~6,2%-%%@@M%Month%%%-%%DateTime:~0,4%%"
	Call Set "current-weekday=%%@@D%Wday%%%"
	Set "current-time=%DateTime:~8,2%:%DateTime:~10,2%:%DateTime:~-2%"

Echo.Дата: %current-date% День: %current-weekday% Время: %current-time%

Pause
Exit /B

rem Номер дня в неделе дд мм гггг имя_переменной
:NdayInWeek
SetLocal
	Set "D=0%1" &Set "M=0%2"
	Set /A D=1%D:~-2%-100,M=1%M:~-2%-100  
	Set /A i=(%3-1901)*365 + (%3-1901)/4 + %D% + (!(%3 %% 4))*(!((%M%-3)^&16))
	EndLocal &Set /A %~4=(%i%+(%M%-1)*30+2*(!((%M%-7)^&16))-1+((65611044^>^>(2*%M%))^&3))%%7+1
Exit /B

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


Последний раз редактировалось megaloman, 17-11-2021 в 17:15.

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

Отправлено: 15:32, 17-11-2021 | #12


Аватара для Гена829999

Пользователь


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

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


Цитата megaloman:
А вот фэншуйный вариант »
Действительно так и есть!
Wmic конечно умеет четко выполнять поставленную задачу.
Применял когда обычные команды остановки и удаления служб и процессов не справлялись.
И поэтому всегда предпочитаю использовать его.
Вы правы-этот код с WMIC лучше использовать чем с созданием временных файлов
Буду использовать.
Благодарю, Вас!

Отправлено: 22:39, 17-11-2021 | #13



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Автоисправление I3 тегов исполнителя и названия песни посредством названия файла Терпила Хочу все знать 2 01-09-2015 21:19
Доступ - Как установить полные права для чистки реестра в USBSTOR MpAk999 Microsoft Windows 7 2 24-08-2013 11:31
[решено] Как получить полные права администратора AKA_MOROZ Microsoft Windows Vista 18 27-02-2010 11:26
Доступ - [решено] как сделать полные права админа Swissboy921 Microsoft Windows Vista 3 08-07-2009 14:57
Как одновременно вывести результат на экран и в файл в консоли Windows? warezhka84 Хочу все знать 3 17-12-2004 17:16




 
Переход