|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Как вывести полные названия дней недели в консоли? |
|
|
CMD/BAT - [решено] Как вывести полные названия дней недели в консоли?
|
Пользователь Сообщения: 57 |
Профиль | Отправить 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 |
fascinating rhythm Сообщения: 6491
|
Профиль | Отправить PM | Цитировать Цитата Vadikan:
|
|
------- Отправлено: 16:04, 16-11-2021 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 992
|
Профиль | Сайт | Отправить PM | Цитировать |
Отправлено: 16:12, 16-11-2021 | #3 |
fascinating rhythm Сообщения: 6491
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 16:48, 16-11-2021 | #4 |
Ветеран Сообщения: 2708
|
Профиль | Отправить 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 |
|
------- Последний раз редактировалось megaloman, 16-11-2021 в 20:03. Отправлено: 19:46, 16-11-2021 | #5 |
Пользователь Сообщения: 57
|
Профиль | Отправить PM | Цитировать megaloman, megaloman,
Цитата megaloman:
То есть невозможно сделать, как реализовано имена месяцев в коде!? |
|
Отправлено: 20:41, 16-11-2021 | #6 |
Пользователь Сообщения: 57
|
Профиль | Отправить 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 |
Crazy Сообщения: 1171
|
Профиль | Отправить 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 подучить, ибо... ибо... как по классику |
|
------- Отправлено: 21:45, 16-11-2021 | #8 |
Пользователь Сообщения: 57
|
Профиль | Отправить 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 |
Ветеран Сообщения: 2708
|
Профиль | Отправить 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 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Автоисправление 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 |
|