Как узнать день недели из командной строки

Все об администрировании рабочих станций Windows 95/98/NT/2000/XP/7/8. То, чего не найдешь в бескрайних просторах Интернета. Решения тех проблем, которые не решаются типовыми ответами, которые можно получить в техподдержке Майкрософта - а именно: переустановить продукт или купить какой-ть другой лицензионный диск.


Модератор: UncleFather

Аватара пользователя
UncleFather
Site Admin
Сообщения: 1505
Зарегистрирован: 17 авг 2004 16:20, Вт
Контактная информация:

Как узнать день недели из командной строки

Сообщение UncleFather »

Задача:

Необходимо получить день недели в командном файле (батнике)

Решение:

К сожалению, напрямую получить значение дня недели из батника не получится, но можно предложить альтернативные варианты, например, переписать батник в скрипт PowerShell или сделать vbs (Visual Basic Script) вставку в bat-файл:

Для получения номера дня недели в VBS используем конструкцию типа этих:

Код: Выделить всё

Weekday(Date)
Weekday(Now)
DatePart("w",Now)

А для получения названия, типа этих:

Код: Выделить всё

WeekdayName(Weekday(Date))
WeekdayName(Weekday(Now))
WeekdayName(DatePart("w",Now))

Теперь получим из bat-файла день недели, найденный в VBS:

Код: Выделить всё

@echo off 
echo WScript.Echo WeekdayName(Weekday(Now)) > ~weekdaytmp.vbs 
for /f %%i in ('cscript /nologo ~weekdaytmp.vbs') do set WeekDayName=%%i 
del /q ~weekdaytmp.vbs
echo %WeekDayName%

Дополнение:

Таблица соответствий номеров дням недели:

Константа VB (Значение перечисления)

Значение

Описание

vbUseSystemDayOfWeek (FirstDayOfWeek.System)

0

Первый день недели, заданный в параметрах системы (по умолчанию)

vbSunday (FirstDayOfWeek.Sunday)

1

Воскресенье

vbMonday (FirstDayOfWeek.Monday)

2

Понедельник (соответствует стандарту ISO 8601, раздел 3.17)

vbTuesday (FirstDayOfWeek.Tuesday)

3

Вторник

vbWednesday (FirstDayOfWeek.Wednesday)

4

Среда

vbThursday (FirstDayOfWeek.Thursday)

5

Четверг

vbFriday (FirstDayOfWeek.Friday)

6

Пятница

vbSaturday (FirstDayOfWeek.Saturday)

7

Суббота


Дополнение:

Номер дня недели можно получить через WMIC:

Код: Выделить всё

For /F "Skip=1" %%i In ('WMIC Path Win32_LocalTime Get DayOfWeek') Do Set /A $DayOfWeek=%%i+1&GoTo DayOfWeek
:DayOfWeek

Alexander A. Manaeff©

Понравилась статья? Будем крайне признательны за репосты в соцсетях! Материально поддержать проект можно здесь

Мои странички:
ВКонтакте
Одноклассники
Youtube
Facebook
Instagram

Изображение
Изображение
Изображение
Изображение