Я хотел бы использовать числовую часть вывода «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%