- Вопрос или проблема
- Ответ или решение
- Как добавить одну минуту к текущему времени с помощью CMD для запланированной задачи
- Шаг 1: Извлечение текущего времени
- Шаг 2: Добавление одной минуты
- Шаг 3: Обработка переполнений
- Шаг 4: Вывод новом времени
- Шаг 5: Использование нового времени для создания задачи
- Заключение
Вопрос или проблема
У меня есть скрипт, который создает запланированные задачи на выполнение через одну минуту с момента создания, используя строку powershell “(Get-Date).AddMinutes(1).ToString(“HH:mm”)”
$Time = (Get-Date).AddMinutes(1).ToString("HH:mm")
schtasks /CREATE /S $env:computername /RU $env:username /SC ONCE /TN "!One_time_task" /TR !Task! /ST $Time
Проблема в том, что мне нужно сделать то же самое, используя CMD, потому что я не могу использовать Powershell для этой задачи. В настоящее время мне нужно явно редактировать строку до нужного времени, я знаю, что “time /t” – это текущее время, есть ли способ просто легко добавить одну минуту?
Вы можете использовать %time%
для получения текущего времени. Используйте извлечение строки для часов и минут отдельно. Учитывайте переход по часам и дням.
SETLOCAL ENABLEDELAYEDEXPANSION
rem избежать перехода по часам при чтении %time%
set ttime=%time%
rem текущий час
set ch=%ttime:~0,2%
rem текущая минута
set cm=%ttime:~3,2%
rem следующая минута
set /a nm=!cm!+1
set nh=!ch!
rem переполнение часов?
if !nm! geq 60 (
set /a nm=!nm!-60
rem восстановить ведущий 0
set nm=0!nm!
set /a nh=!nh!+1
)
rem переполнение дня?
if !nh! geq 24 (
rem переход на следующий день каким-либо образом
)
echo Текущее время + 1 мин = !nh!:!nm!
.
Ответ или решение
Как добавить одну минуту к текущему времени с помощью CMD для запланированной задачи
Если вам необходимо создать запланированную задачу на одиннадцать минут позже текущего времени, используя командную строку (CMD), и у вас нет возможности использовать PowerShell, вы можете поступить следующим образом. Данная инструкция подробно объясняет, как извлечь текущее время, добавить к нему одну минуту, а также учесть переполнения часов и дня.
Шаг 1: Извлечение текущего времени
Первые шаги включают извлечение текущего времени из системной переменной %time%
. Давайте запишем базовую структуру CMD, которая позволит нам работать с часами и минутами.
SETLOCAL ENABLEDELAYEDEXPANSION
set ttime=%time%
set ch=%ttime:~0,2% REM Текущий час
set cm=%ttime:~3,2% REM Текущая минута
Шаг 2: Добавление одной минуты
Поскольку нам нужно добавить одну минуту, мы также должны учесть возможное переполнение минут (если текущая минута равна 59) и часов (если текущий час равен 23). Это можно сделать следующим образом:
set /a nm=!cm!+1 REM Добавляем одну минуту
set nh=!ch! REM Копируем текущий час
Шаг 3: Обработка переполнений
Теперь нужно проверить, превышает ли значение минут 59, и, если да, то сбросить минуты и увеличить часы на единицу. Кроме того, нужно обработать случаи, когда часы превышают 23, что означает переход на следующий день.
REM Обработка переполнения минут
if !nm! geq 60 (
set /a nm=!nm!-60
set nm=0!nm! REM Восстановление ведущего нуля
set /a nh=!nh!+1
)
REM Обработка переполнения часов
if !nh! geq 24 (
set /a nh=0 REM Сброс часов на 0 (или можно добавить логику для перехода на следующий день)
)
Шаг 4: Вывод новом времени
В конце можно вывести новое время, которое будет использовано для создания запланированной задачи.
echo Текущее время + 1 мин = !nh!:!nm!
Шаг 5: Использование нового времени для создания задачи
Объединяя всё это в единое целое, вы можете создать запланированную задачу, добавив минуту к текущему времени.
set ttime=%time%
set ch=%ttime:~0,2%
set cm=%ttime:~3,2%
set /a nm=!cm!+1
set nh=!ch!
if !nm! geq 60 (
set /a nm=!nm!-60
set nm=0!nm!
set /a nh=!nh!+1
)
if !nh! geq 24 (
set /a nh=0
)
REM Форматируем время для schtasks (например, 08:05 вместо 8:5)
set formattedTime=!nh:~0,2!:!nm:~-2!
REM Создание запланированной задачи
schtasks /CREATE /S %computername% /RU %username% /SC ONCE /TN "One_time_task" /TR "PathToYourTask" /ST !formattedTime!
Заключение
В этой инструкции вы узнали, как извлечь текущее время, добавить одну минуту и создать запланированную задачу с использованием только командной строки (CMD). Это полезный подход, который обходит необходимость использования PowerShell, при этом сохраняя функциональность скрипта. Не забывайте тестировать ваш код после внесения изменений и следить за правильностью формата времени при передаче его в команду schtasks
.