Как изменить обои в определенное время, используя командный файл?
Я очень новичок в использовании командных файлов и программирования в cmd. После того, как мне не удалось найти бесплатную программу обоев, которая бы устанавливала определенные обои в определенное время, и поддерживала двойные мониторы, я решил создать пакетный файл, который тянет время дня (в военном формате) и использует операторы if, чтобы установить соответствующие обои, если они еще не были установлены. Вот часть кода на данный момент:
@echo off
set /A mystate=0
:start
For /f "tokens=1-2 delims=/:" %%a in ("%TIME%") do (set mytime=%%a%%b)
if %mytime% lss 800 (
if NOT %mystate% == 1 (
reg add "HKCU\Control Panel\Desktop" /v Wallpaper /f /t REG_SZ /d C:\Users\zach.norstedt\Pictures\Wallpaper\ASunrise.jpg
:: Change last number to 0 to not tile, set it to 1 to tile.
reg add "HKCU\Control Panel\Desktop" /v TileWallpaper /t REG_SZ /f /d 1
:: The following lines energize desktop.
%SystemRoot%\System32\RUNDLL32.EXE user32.dll, UpdatePerUserSystemParameters
set /A mystate=1
)
)
sleep 1
goto start
Запуск этого файла выдает ошибку "Синтаксис команды неверен", поэтому я знаю, что по крайней мере одна из моих команд не имеет правильного синтаксиса, но я не могу понять, какая это. Большая часть этого кода была скопирована и вставлена из разных источников в Интернете. У меня практически нет знаний о правильном синтаксисе cmd.
1 ответ
Может быть, не так очевидно: не используйте ::
внутри блоков кода. использование REM
вместо.
(Лично я не пользуюсь ::
вообще по причинам консистенции)
Технически это метка, а метки не допускаются в блоках кода.