Один простой вариант - использовать FINDSTR /R
для проверки правильности регулярного выражения, если время имеет правильное количество цифр.
set tm=43:00:00
echo %tm%| findstr /R "^[0-2][0-9]:[0-5][0-9]:[0-5][0-9]$"
if errorlevel 1 (
echo Invalid time!
) else (
echo OK
)
Проблема с этим подходом заключается в том, что FINDSTR имеет только ограниченную поддержку регулярных выражений, поэтому вы не можете точно сказать с помощью вышеизложенного, имеет ли время смысл (например, если час равен 25 ...)1005 *
Вы можете улучшить скрипт, выполнив несколько отдельных проверок.Например: если первая цифра часа - [2], то вторая цифра должна быть [0-3].Однако, несмотря на все эти усилия, я бы предпочел просто вызвать простой сценарий PowerShell, чтобы проверить правильность времени и использовать вывод сценария PS в вашем пакетном файле.