
批處理桌面背景壁紙設置隨機或固定圖片win10和win11測試通過
nclick="copycode($('code0'));">復制代碼
- @echo off
- Title 切換壁紙
- MODE con: Cols=40 Lines=10
- Color 2f
- Pushd %CD%&cd /d %~dp0
- for /f tokens=2* %%i in ('reg query HKCUControl PanelDesktop /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%WebWallpaper%NWP% >nul&&Set NWP=%WinDir%WebWallpaper%NWP%) else Set NWP=%~dp0%NWP%
- if %GP% == 隨機切換 if %OWP% == %NWP% if %Count% gtr 1 Goto 隨機切換
- echo %GP%: %RNum%↓
- echo %NWP%
- if exist %SystemRoot%System32Pecmd.exe (Pecmd WALL %NWP%&? delete HKCUControl PanelDesktop /f /v Wallpaper.PECMD 1>nul 2>nul) else (reg add HKCUControl PanelDesktop /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%WebWallpaper
- -Random 隨機切換壁紙
- +Random隨機切換壁紙,壁紙文件拷入到%WinDir%WebWallpaper
- 使用方法:
- 將腳本文件置于壁紙同一目錄執行,不支持下級目錄。
- 壁紙目錄只能有腳本文件和壁紙文件,不能存在其他文件或文件夾,會影響壁紙切換!

