Было бы легче читать, если бы вы могли немного отформатировать свой код.
Чтобы решить вашу текущую проблему, вы можете использовать время для десятичной обработки.
set /a t=1%time:~6,-3%-100
В противном случае у вас возникли проблемы со временем 08 и 09, поскольку из-за начального нуля предполагается, что оно должно быть восьмеричным значением, и происходит сбой.
И в цикле ожидания выМожно использовать тот же способ
:wait
set /a now=1%time:~6,-3%-100
If %now% neq %t% goto :Wait
Но, чтобы подождать время, лучше использовать способ,
ping localhost -n [sec]+1 > NUL
, потому что ваш путь потребляет 100% процессора (одно ядро).