Код партии: между датами или больше / меньше чем? - PullRequest
0 голосов
/ 21 декабря 2011

У меня есть простой пакетный скрипт, который делает что-то в определенную дату, но я хочу, чтобы он мог выполнять это между датами или всегда до или после определенной даты.

@ECHO OFF

IF "%DATE%"=="12/12/2011" GOTO ARMREST
GOTO END

:ARMREST
ECHO HELLO WORLD!
PAUSE

:END

Теперь я попытался использовать "> =", но это не сработало, я все кончил, но не могу найти то, что ищу. Я даже не знаю, можно ли использовать такой сложный логический тип? Это для Windows 7, очень простой скрипт, просто интересно узнать даты.

Кроме того, у меня есть испанская машина, значение даты которой отличается от британской, поэтому для Великобритании это "12/02/2011" (ДД / ММ / ГГГГ), а для испанской - 12/12/2011 (дд / м / гггг) Я думаю, но я могу это выяснить с помощью простого @ECHO% DATE%, не могу ли я?!

Спасибо!

Ответы [ 2 ]

1 голос
/ 21 декабря 2011

% DATE% возвращает текущую дату в формате короткой даты, который полностью (бесконечно) настраивается.Один пользователь может настроить свою систему для возврата Fri040811, а другой пользователь может выбрать 08/04/2011 ... это полный кошмар для программиста на BAT.

Возможное решение - использовать WMIC.WMIC Path Win32_LocalTime Get Day,Hour,Minute,Month,Second,Year /Format:table возвращает дату удобным способом, чтобы непосредственно проанализировать ее с FOR.

@ECHO OFF
FOR /F "skip=1 tokens=1-6" %%A IN ('WMIC Path Win32_LocalTime Get Day^,Hour^,Minute^,Month^,Second^,Year /Format:table') DO (
   SET /A DAYS=%%F*10000+%%D*100+%%A
)
IF %DAYS% GTR 20111210 (
  IF %DAYS% LSS 20111230 (
    ECHO Yes!
  )
)
GOTO :eof
0 голосов
/ 21 декабря 2011

Вы должны нормализовать все даты в формате ггггммдд для сравнения.Например:

rem Convert from dd/m/yyyy to yyyymmdd
set date=%date:/=/0%
set year=%date:~-4,4%
set month=%date:~-8,2%
set day=%date:~0,2%
set normdate=%year%%month%%day%

Проверьте, например, http://ss64.com/nt/syntax.html переменную подстроку и замените.

Сравнения выполняются с lss, leq, gtr и geq.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...