Динамическая дата истечения срока действия в BAT-файле: методы и примеры

Введение.
В этой статье мы рассмотрим различные методы создания BAT-файла (пакетного) с переменным сроком действия. Мы предоставим примеры кода для каждого метода, что позволит вам реализовать решение, которое наилучшим образом соответствует вашим потребностям. Благодаря динамическому сроку действия вы можете автоматизировать задачи, требующие срочных действий, например временную очистку файлов или управление лицензиями.

Метод 1: использование переменных системной даты
Пример кода:

@echo off
setlocal
REM Set the expiration date (YYYY-MM-DD format)
set "expiration_date=2024-12-31"
REM Get the current date
for /f "tokens=1-3 delims=-" %%a in ('echo %date%') do (
    set "current_date=%%c-%%a-%%b"
)
REM Compare the current date with the expiration date
if "%current_date%" gtr "%expiration_date%" (
    echo The BAT file has expired.
    REM Add your expiration actions here
) else (
    echo The BAT file is still valid.
    REM Add your valid actions here
)

Метод 2: использование PowerShell
Пример кода:

@echo off
setlocal
REM Set the expiration date (YYYY-MM-DD format)
set "expiration_date=2024-12-31"
REM Get the current date using PowerShell
for /f "usebackq tokens=*" %%a in (`powershell -Command "Get-Date -Format 'yyyy-MM-dd'"`) do (
    set "current_date=%%a"
)
REM Compare the current date with the expiration date
if "%current_date%" gtr "%expiration_date%" (
    echo The BAT file has expired.
    REM Add your expiration actions here
) else (
    echo The BAT file is still valid.
    REM Add your valid actions here
)

Метод 3: использование VBScript
Пример кода:

@echo off
setlocal
REM Set the expiration date (YYYY-MM-DD format)
set "expiration_date=2024-12-31"
REM Get the current date using VBScript
for /f "usebackq tokens=*" %%a in (`cscript //nologo //e:vbscript "%~f0"`) do (
    set "current_date=%%a"
)
REM Compare the current date with the expiration date
if "%current_date%" gtr "%expiration_date%" (
    echo The BAT file has expired.
    REM Add your expiration actions here
) else (
    echo The BAT file is still valid.
    REM Add your valid actions here
)
goto :eof
' VBScript code to get the current date
WScript.Echo Year(Now) & "-" & Right("00" & Month(Now), 2) & "-" & Right("00" & Day(Now), 2)

Вывод:
Реализуя динамическую дату истечения срока действия в BAT-файле, вы можете эффективно автоматизировать срочные задачи. В этой статье представлены примеры кода с использованием переменных системной даты, PowerShell и VBScript. Вы можете выбрать метод, который лучше всего соответствует вашим требованиям, и интегрировать его в свой командный файл. Не забудьте настроить дату истечения срока действия и добавить конкретные действия в соответствии с вашими потребностями.