如何使用批处理文件在特定时间更改壁纸?

时间:2016-07-15 17:07:10

标签: windows batch-file time cmd wallpaper

我非常擅长在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 个答案:

答案 0 :(得分:1)

可能不那么明显:不要在代码块中使用REM。请改用:: (出于一致原因,我个人根本不使用CREATE TABLE t3 STORED AS PARQUET AS SELECT t1.* FROM t1 INNER JOIN t2 ON t1.id=t2.id; ) 它在技术上是一个标签,代码块中不允许使用标签。