Windows 如何使用批处理文件在特定时间更改墙纸?
我对在cmd中使用批处理文件和编程非常陌生。在找不到一个可以在特定时间设置特定墙纸的免费墙纸程序,并且支持双监视器之后,我决定创建一个批处理文件,该文件提取一天中的时间(军用格式),如果尚未设置,则使用if语句设置相应的墙纸。以下是迄今为止代码的一部分:Windows 如何使用批处理文件在特定时间更改墙纸?,windows,batch-file,time,cmd,wallpaper,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% l
@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语法。可能不那么明显:不要在代码块内使用
:
。改用REM
。(出于一致性原因,我个人根本不使用
:
)从技术上讲,这是一个标签,代码块中不允许使用标签。因此,开始调试:开始注释行,直到找到导致错误的行。我已经为此绞尽脑汁了一段时间。无论到目前为止我注释掉了哪一行或哪几行的组合,我都会收到相同的错误。然后注释掉所有内容,并开始取消注释。如果您在完全注释的版本中出现错误,则是您调用此批处理的方式导致了错误。我不认为在选择此文件时按enter键会导致错误。我是带着一个语法问题来到这里的,所以我可以学习更多关于MS-DOS语法的知识。我已经知道如何迭代调试代码。我已经知道如何迭代调试代码。然后这样做以隔离导致错误的行,您可以询问有关该行语法的特定问题。别指望我们为你做这件事。谢谢你,我以后一定会做的。