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

Компьютерный форум 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

 

Аватара для DJ Mogarych

fascinating rhythm


Moderator


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

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


Цитата Vadikan:
Все что угодно, лишь бы не изучать пошик »

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)

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

Отправлено: 16:04, 16-11-2021 | #2



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

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


Аватара для Elven

Ветеран


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

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


Если так уж хочется именно в этом реализовать...
Код: Выделить весь код
powershell -command "(Get-Date).DayOfWeek"
Это сообщение посчитали полезным следующие участники:

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


Аватара для DJ Mogarych

fascinating rhythm


Moderator


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

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


Если хочется по-русски:
Код: Выделить весь код
powershell -command "(Get-Date).tostring('dddd')"

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)

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

Отправлено: 16:48, 16-11-2021 | #4


Ветеран


Contributor


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

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


Код: Выделить весь код
@Echo Off
cls
	Set "A=31 12 2019"
	Set "A=1 1 2021"
	Set "A=16 11 2021"

	Call :NdayInWeek %A% "DWeek"
	FOR /F "tokens=%DWeek% delims= " %%i IN ("Понедельник Вторник Среда Четверг Пятница Суббота Воскресенье") DO Set "DWeek=%%i"

	Echo ===== %A%  DWeek=%DWeek%
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
Бонус:
Код: Выделить весь код
@Echo Off
cls
	Set /A Nmonth=11
	FOR /F "tokens=%Nmonth% delims= " %%i IN ("Январь Февраль Март Апрель Май Июнь Июль Август Сентябрь Октябрь Ноябрь Декабрь") DO Set "Smonth=%%i"

	Echo ===== %Nmonth%  Smonth=%Smonth%
Pause
Exit /B

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


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

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

Отправлено: 19:46, 16-11-2021 | #5


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

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


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

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


megaloman, megaloman,
Цитата megaloman:
Бонус: »
Благодарю!
То есть невозможно сделать, как реализовано имена месяцев в коде!?

Отправлено: 20:41, 16-11-2021 | #6


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

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


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

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


megaloman,
Нет, не имеет значение язык
Мне нужно было продолжение кода
А точнее реализация как для отображения месяца также и для недели
Можно и на английском
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"
)
Del /q "%temp%\~.*"
Echo.Дата: %current-date% WeekDay: %current-weekday%
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

Отправлено: 21:27, 16-11-2021 | #7


Аватара для YuS_2

Crazy


Contributor


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

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


Цитата Гена829999:
То есть невозможно сделать, как реализовано имена месяцев в коде!? »
Невозможно - это слишком пессимистично
оптимистичный вариант :)
Код: Выделить весь код
@Echo off
Echo.>"%temp%\~.ddf"
>nul makecab /d RptFileName="%temp%\~.rpt" /d InfFileName="%temp%\~.inf" -f "%temp%\~.ddf"
set /p "var="<"%temp%\~.rpt"
for /f "tokens=3,4,5,6,7,8,9 delims=: " %%a in ('echo %var%') do (
	if not defined m call :month %%b
	if not defined current-weekday call :day %%a
	if not defined current-date (call set "current-date=%%c-%%m%%-%%g")
	if not defined current-time (call set "current-time=%%d:%%e:%%f")
)
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
:day
if "%1"=="Mon" set "current-weekday=Понедельник"
if "%1"=="Tue" set "current-weekday=Вторник"
if "%1"=="Wed" set "current-weekday=Среда"
if "%1"=="Thu" set "current-weekday=Четверг"
if "%1"=="Fri" set "current-weekday=Пятница"
if "%1"=="Sat" set "current-weekday=Суббота"
if "%1"=="Sun" set "current-weekday=Воскресенье"
Exit /B


Но таки, за пару лет, можно было и powershell подучить, ибо... ибо... как по классику

-------
scio me nihil scire. Ѫ

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

Отправлено: 21:45, 16-11-2021 | #8


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

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


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

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


YuS_2,
Благодарю, Вас!
Это и имел ввиду.
Работает как часы!
Временно использовал такой вариант:
Скрытый текст
Код: Выделить весь код
set jsfunc=new Date().getDay()
set dialog="about:<script>resizeTo(0,0);new ActiveXObject('Scripting.FileSystemObject').
set dialog=%dialog%GetStandardStream(1).WriteLine(%jsfunc%);close();</script>"
for /f "tokens=* delims=" %%p in ('mshta.exe %dialog%') do set ndow=%%p
for /f "tokens=%ndow%"  %%d in ("Понедельник Вторник Среда Четверг Пятница Суббота Воскресенье") do set dow=%%d
Echo.%dow%

Тоже рабочий

PowerShell, конечно надежный и мощный инструмент.
Не часто использую и поэтому не приводилось изучить.
А надо бы!

Отправлено: 22:50, 16-11-2021 | #9


Ветеран


Contributor


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

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


Гена829999, Ваш изменённый вариант:
Код: Выделить весь код
@Echo Off
cls
	For %%i In ("Jan=Января" "Feb=Февраля" "Mar=Марта" "Apr=Апреля" "May=Мая" "Jun=Июня" "Jul=Июля" "Aug=Августа" "Sep=Сентября" "Oct=Октября" "Nov=Ноября" "Dec=Декабря") Do Set "@@M%%~i"
	For %%i In ("Mon=Понедельник" "Tue=Вторник" "Wed=Среда" "Thu=Четверг" "Fri=Пятница" "Sat=Суббота" "Sun=Воскресенье") Do Set "@@D%%~i"

	>"%temp%\%~nx0.ddf" cd.
	>nul makecab /d RptFileName="%temp%\%~nx0.rpt" /d InfFileName="%temp%\%~nx0.inf" -f "%temp%\%~nx0.ddf"

	Set /P OutRpt=<"%temp%\%~nx0.rpt"
	Del "%temp%\%~nx0.*"
	For /f "tokens=3,4,5,6,7 delims= " %%i in ("%OutRpt%") Do (
		Call Set "current-date=%%k-%%@@M%%~j%%-%%m"
		Call Set "current-weekday=%%@@D%%~i%%"
		Call Set "current-time=%%~l"
	)
Echo.Дата: %current-date% День: %current-weekday% Время: %current-time%

Pause
Exit /B

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


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

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

Отправлено: 23:15, 16-11-2021 | #10



Компьютерный форум 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




 
Переход