[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[系统相关] 批处理桌面背景壁纸-设置-随机或固定图片-win10和win11测试通过

  1. @echo off
  2. Title 切换壁纸
  3. MODE con: Cols=40 Lines=10
  4. Color 2f
  5. Pushd "%CD%"&cd /d "%~dp0"
  6. for /f "tokens=2*" %%i in ('reg query "HKCU\Control Panel\Desktop" /v "WallPaper" 2^>nul') do Set "OWP=%%j"
  7. for /f "tokens=* usebackq" %%f in (`dir /b *.*^|find /v /c "%~nx0"`) do Set /a Count=%%f
  8. echo 壁纸数量: [%Count%]
  9. if %Count% == 0 Color cf&ping 127.1 -n 3 >nul&Exit /b
  10. REM 调用参数:-Next(默认) -Random +Next +Random
  11. Set CP=-&Set GP=顺序切换&Set Args=%1
  12. if defined Args (
  13.     Set "CP=%Args:~0,1%"
  14.     if /i `%Args:~1%` == `Random` Set GP=随机切换
  15. )
  16. Goto %GP%
  17. :顺序切换
  18. for /f "tokens=* usebackq" %%f in (`dir /b /o:d *.*^|find /v "%~nx0"`) do (
  19.     Copy "%%f"+,, "%%f" 1>nul 2>nul&Set "NWP=%%f"&Goto 设置壁纸
  20. )
  21. :随机切换
  22. Set /a RNum=%Random%%%%Count%+1 2>nul
  23. Set Num=1
  24. setlocal enabledelayedexpansion
  25. for /f "tokens=* usebackq" %%f in (`dir /b *.*^|find /v "%~nx0"`) do (
  26.     if !Num! == %RNum% (endlocal&Set RNum=[%RNum%] &Set "NWP=%%f"&Goto 设置壁纸)
  27.     Set /a Num+=1
  28. )
  29. :设置壁纸
  30. if /i `%CP%` == `+` (Copy /y "%NWP%" "%WinDir%\Web\Wallpaper\%NWP%" >nul&&Set "NWP=%WinDir%\Web\Wallpaper\%NWP%") else Set "NWP=%~dp0%NWP%"
  31. if "%GP%" == "随机切换" if "%OWP%" == "%NWP%" if "%Count%" gtr "1" Goto 随机切换
  32. echo %GP%: %RNum%↓
  33. echo %NWP%
  34. if exist %SystemRoot%\System32\Pecmd.exe (Pecmd WALL "%NWP%"&? delete "HKCU\Control Panel\Desktop" /f /v "Wallpaper.PECMD" 1>nul 2>nul) else (reg add "HKCU\Control Panel\Desktop" /f /v "WallPaper" /t REG_SZ /d "%NWP%" 1>nul 2>nul&&Call :刷新)
  35. if not defined Args ping 127.1 -n 2 >nul
  36. Exit /b
  37. :刷新 :: 可能不生效,需要手动重启资源管理器。
  38. Set n=20
  39. :循环
  40. Set /a n-=1
  41. @start "" rundll32.exe user32.dll,UpdatePerUserSystemParameters 1,True
  42. if "%n%" neq "0" Goto 循环
  43. Goto :eof
  44. PE系统,调用 Pecmd WALL 命令设置桌面壁纸,很稳定都生效
  45. 正常系统,注册表设置壁纸路径后,
  46. 调用 rundll32.exe user32.dll,UpdatePerUserSystemParameters 1,True 刷新桌面,
  47. 有一定概率不生效。需要多次刷新
  48. 调用参数:
  49. -Next        顺序切换壁纸(默认)
  50. +Next       顺序切换壁纸,壁纸文件拷入到%WinDir%\Web\Wallpaper\
  51. -Random   随机切换壁纸
  52. +Random  随机切换壁纸,壁纸文件拷入到%WinDir%\Web\Wallpaper\
  53. 使用方法:
  54. 将脚本文件置于壁纸同一目录执行,不支持下级目录。
  55. 壁纸目录只能有脚本文件和壁纸文件,不能存在其他文件或文件夹,会影响壁纸切换!
复制代码
1

评分人数

回复 2# ygqiang


    这里要生成#,最后又删除#
=======================
能不能弄成不生成这个#,也达到一样的效果?
我是小白,希望老师多多帮助

TOP

桌面壁纸--固定文件
  1. @echo off &setlocal
  2. cd /d "%~dp0"
  3. set "mu=%~dp0"
  4. set "wj=img105.jpg"
  5. copy /y pecmd.exe "%SystemRoot%\System32"
  6. echo %mu%
  7. 1pause
  8. pecmd.exe wall "%mu%%wj%"
  9. del /q "#"&exit/b
复制代码

TOP

感谢楼主分享

TOP

TOP

本帖最后由 ygqiang 于 2025-1-27 15:59 编辑

桌面壁纸-随机获取图片设置-指定目录
  1. @echo off &setlocal
  2. set "mu=D:\122"
  3. copy /y pecmd.exe "%SystemRoot%\System32"
  4. cd /d "%mu%" &dir /b/a-d *.jpg *.png>#
  5. for /f %%n in ('find /c /v ""^<#') do (set "n=%%n")
  6. set/a "r=1+%random%%%%n%"
  7. (for /l %%k in (1,1,%r%) do set/p "jF=")<#
  8. set "随机=%jF%"
  9. echo,%随机%
  10. pause
  11. pecmd.exe wall "%mu%\%随机%"
  12. del /q "#"&exit/b
复制代码

TOP

返回列表