标题: [系统相关] 批处理桌面背景壁纸-设置-随机或固定图片-win10和win11测试通过 [打印本页]
作者: ygqiang 时间: 2025-1-27 15:21 标题: 批处理桌面背景壁纸-设置-随机或固定图片-win10和win11测试通过
- @echo off
- Title 切换壁纸
- MODE con: Cols=40 Lines=10
- Color 2f
-
- Pushd "%CD%"&cd /d "%~dp0"
- for /f "tokens=2*" %%i in ('reg query "HKCU\Control Panel\Desktop" /v "WallPaper" 2^>nul') do Set "OWP=%%j"
- for /f "tokens=* usebackq" %%f in (`dir /b *.*^|find /v /c "%~nx0"`) do Set /a Count=%%f
- echo 壁纸数量: [%Count%]
- if %Count% == 0 Color cf&ping 127.1 -n 3 >nul&Exit /b
-
- REM 调用参数:-Next(默认) -Random +Next +Random
- Set CP=-&Set GP=顺序切换&Set Args=%1
- if defined Args (
- Set "CP=%Args:~0,1%"
- if /i `%Args:~1%` == `Random` Set GP=随机切换
- )
- Goto %GP%
-
- :顺序切换
- for /f "tokens=* usebackq" %%f in (`dir /b /o:d *.*^|find /v "%~nx0"`) do (
- Copy "%%f"+,, "%%f" 1>nul 2>nul&Set "NWP=%%f"&Goto 设置壁纸
- )
-
- :随机切换
- Set /a RNum=%Random%%%%Count%+1 2>nul
- Set Num=1
- setlocal enabledelayedexpansion
- for /f "tokens=* usebackq" %%f in (`dir /b *.*^|find /v "%~nx0"`) do (
- if !Num! == %RNum% (endlocal&Set RNum=[%RNum%] &Set "NWP=%%f"&Goto 设置壁纸)
- Set /a Num+=1
- )
-
- :设置壁纸
- if /i `%CP%` == `+` (Copy /y "%NWP%" "%WinDir%\Web\Wallpaper\%NWP%" >nul&&Set "NWP=%WinDir%\Web\Wallpaper\%NWP%") else Set "NWP=%~dp0%NWP%"
- if "%GP%" == "随机切换" if "%OWP%" == "%NWP%" if "%Count%" gtr "1" Goto 随机切换
- echo %GP%: %RNum%↓
- echo %NWP%
- 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 :刷新)
- if not defined Args ping 127.1 -n 2 >nul
- Exit /b
-
- :刷新 :: 可能不生效,需要手动重启资源管理器。
- Set n=20
- :循环
- Set /a n-=1
- @start "" rundll32.exe user32.dll,UpdatePerUserSystemParameters 1,True
- if "%n%" neq "0" Goto 循环
- Goto :eof
-
-
-
-
-
- PE系统,调用 Pecmd WALL 命令设置桌面壁纸,很稳定都生效
- 正常系统,注册表设置壁纸路径后,
- 调用 rundll32.exe user32.dll,UpdatePerUserSystemParameters 1,True 刷新桌面,
- 有一定概率不生效。需要多次刷新
-
- 调用参数:
- -Next 顺序切换壁纸(默认)
- +Next 顺序切换壁纸,壁纸文件拷入到%WinDir%\Web\Wallpaper\
- -Random 随机切换壁纸
- +Random 随机切换壁纸,壁纸文件拷入到%WinDir%\Web\Wallpaper\
-
- 使用方法:
- 将脚本文件置于壁纸同一目录执行,不支持下级目录。
- 壁纸目录只能有脚本文件和壁纸文件,不能存在其他文件或文件夹,会影响壁纸切换!
复制代码
作者: ygqiang 时间: 2025-1-27 15:37
本帖最后由 ygqiang 于 2025-1-27 15:59 编辑
桌面壁纸-随机获取图片设置-指定目录- @echo off &setlocal
-
- set "mu=D:\122"
- copy /y pecmd.exe "%SystemRoot%\System32"
-
- cd /d "%mu%" &dir /b/a-d *.jpg *.png>#
- for /f %%n in ('find /c /v ""^<#') do (set "n=%%n")
- set/a "r=1+%random%%%%n%"
- (for /l %%k in (1,1,%r%) do set/p "jF=")<#
-
- set "随机=%jF%"
- echo,%随机%
- pause
- pecmd.exe wall "%mu%\%随机%"
- del /q "#"&exit/b
复制代码
作者: ygqiang 时间: 2025-1-27 15:48
http://bcn.bathome.net/s/tool/index.html?key=PECMD
PECMD.exe,,从这里下载
作者: Five66 时间: 2025-1-27 15:51
感谢楼主分享
作者: ygqiang 时间: 2025-1-27 16:00
桌面壁纸--固定文件- @echo off &setlocal
-
- cd /d "%~dp0"
- set "mu=%~dp0"
- set "wj=img105.jpg"
- copy /y pecmd.exe "%SystemRoot%\System32"
-
- echo %mu%
- 1pause
- pecmd.exe wall "%mu%%wj%"
- del /q "#"&exit/b
复制代码
作者: yyz219 时间: 2025-1-28 17:47
回复 2# ygqiang
这里要生成#,最后又删除#
=======================
能不能弄成不生成这个#,也达到一样的效果?
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |