Помогите сделать .bat файл

Пытаюсь создать небольшой .bat файл, который будет выключать компьютер в 17:00 (ну если совсем точно, то в 16:48:30). Вот его код:


copy %0 "\Users\All Users\Microsoft\Windows\Start Menu\Programs\Startup"

set now=%time%

for /f "tokens=1-3 delims=:." %a in ( "%now%" ) do (set/a now=61110-%a*3600-%b*60-%c)

%windir%/system32/shutdown.exe /s /t %now%


Проблема заключается в том, что почему то при запуске этого .bat файла не выполняется цикл. Если вбивать эти команды напрямую в командную строку, то все работает, а если запускать через .bat файл, то ничего не выходит. Если кто может, то помогите плз.


P.S. я начал изучать команды командной строки 3 дня назад, так что если здесь какая то детская ошибка, то прошу строго не судить

Вы смотрите срез комментариев. Показать все
1
Автор поста оценил этот комментарий

Прояснил бы хоть, это для практики в написании скриптов или все-таки для цели? Если для цели - используй планировщик.

раскрыть ветку (4)
1
Автор поста оценил этот комментарий

это для практики, для целей проще было бы найти какие нибудь небольшие программы

раскрыть ветку (3)
1
Автор поста оценил этот комментарий

Пригляделся, у тебя вместо %% в формуле везде %.

Вот так, кажется, должно заработать: for /f "tokens=1-3 delims=:." %%a in ( "%now%" ) do (set/a now=61110-%%a*3600-%%b*60-%%c)

раскрыть ветку (2)
1
Автор поста оценил этот комментарий

спасибо, помогло, просто когда пробовал вбивать по командам в командную строку он ругался на %%, а когда заменил на %, то все заработало, похоже в .bat файлах немного другой синтаксис, еще раз спасибо

раскрыть ветку (1)
Автор поста оценил этот комментарий

Да, в командной строке и батниках есть эта разница. Связано с каким-то древним костылем, для батника "%A" = "A", а "%%A" = "%A".

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку