Я новичок в пакетном скриптинге, поэтому, пожалуйста, будьте снисходительны к этому вопросу. Когда я вычитаю 1 из переменной TodayDay, значение не обновляется. Ниже находится строка.
set /a "TodayDay=%TodayDay%-1"
Мой вариант использования - определить, меньше ли сегодняшняя дата, чем переменная lastOpenedDate, я хочу установить для lastOpenedDate вчерашнюю дату.
set lastOpenedDate=2017-12-22
IF %TodayYear%-%TodayMonth%-%TodayDay% LSS %lastOpenedDate% (
echo Before Subtraction TodayDay is %TodayDay%
set /a "TodayDay=%TodayDay%-1"
echo After Subtraction TodayDay is %TodayDay%
)
Когда я запустил приведенный выше код, вывод:
Before Subtraction TodayDay is 20
After Subtraction TodayDay is 20
Я получил другие значения переменных из приведенного ниже кода.
for /F "skip=1 delims=" %%F in ('
wmic PATH Win32_LocalTime GET Day^,Month^,Year /FORMAT:TABLE
') do (
for /F "tokens=1-3" %%L in ("%%F") do (
set TodayDay=0%%L
set TodayMonth=0%%M
set TodayYear=%%N
)
)
set TodayDay=%TodayDay:~-2%
set TodayMonth=%TodayMonth:~-2%
Что я делаю не так?