Назад | Перейти на главную страницу

Как указать значение DayOfWeek в имени файла?

Я хотел бы использовать числовую часть вывода «wmic path win32_localtime get dayofweek» для нумерации файлов резервных копий. Что-то вроде:

FOR / F "tokens = 2 delims = \ n" %% DoW IN ('wmic path win32_localtime get dayofweek') DO (echo %% DoW)

За исключением того, что вышеуказанное не работает. Любая помощь приветствуется.

В более новых ОС MS Windows, включая Vista и Windows 7, команда «date» не возвращает день недели, но вы все равно можете поместить день в переменную, используя следующее в пакетном сценарии:

@echo off & Setlocal 
Set "_=mon tues wed thurs fri sat sun" 
For /f %%# In ('WMIC Path Win32_LocalTime Get DayOfWeek^|Findstr [1-7]') Do ( 
        Set DOW=%%#)
:: now lets display the day of week on the screen 
echo "%DOW%"
pause

Для Windows 2K и XP вы можете проанализировать день с помощью команды «date», используя следующее в пакетном сценарии:

@echo off
echo.|date|find "is:" >Get.bat
findstr "is:" get.bat > Str
for /f "tokens=5 delims= " %%d in (str) do set day=%%d
del get.bat
del str
:: echo day of week to the screen
echo Today is %day%
pause

Переменные в FOR цикл может быть только односимвольным. В delims у вас есть обратная косая черта и "n" вместо новой строки.

@echo off
SETLOCAL enabledelayedexpansion
SET /a count=0
FOR /F "skip=1" %%D IN ('wmic path win32_localtime get dayofweek') DO (
    if "!count!" GTR "0" GOTO next
    ECHO %%D
    SET /a count+=1
)
:next
for /f "skip=1 tokens=2 delims=," %i in ('wmic path win32_localtime get dayofweek /format:csv') do set DOW=%i
echo %DOW%