| 
 | 
 
 本帖最后由 BEIKING 于 2025-3-19 21:09 编辑  
- @echo off
 
 - if /i "%UserName%" == "SYSTEM" (Goto GotAdmin) else (reg query "HKLM\SYSTEM\ControlSet001\Control\MiniNT" 1>nul 2>nul&&Goto GotAdmin)
 
 - :BatchGotAdmin
 
 - Set _Args=%*
 
 - if `%1` neq `` Set "_Args=%_Args:"=""%"
 
 - if exist %WinDir%\System32\fltMC.exe fltMC 1>nul 2>nul||mshta VBScript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c """"%~f0"" %_Args%""",,"runas",1)(Window.Close) 2>nul&&Exit /b
 
  
- :GotAdmin
 
 - Pushd "%CD%"&cd /d "%~dp0"
 
 - find /? 1>nul 2>nul||(Color cf&echo 找不到 find.exe 文件,按任意键退出。&Pause >nul&Exit /b)
 
 - REM 内部参数初始化
 
 - Set "Ext=*.jpg *.jpeg *.png *.gif *.bmp" :: 支持壁纸类型
 
 - Set "Style=拉伸" :: 默认壁纸适应模式 (填充, 适应, 拉伸, 平铺, 居中, 跨区)
 
  
- :Start
 
 - Title 切换壁纸&(if exist %WinDir%\System32\ureg.dll Mode 40,10 2>nul)&Color 2f
 
 - for /f "tokens=2*" %%i in ('reg query "HKCU\Control Panel\Desktop" /v "WallPaper" 2^>nul') do Set "OWP=%%~j"
 
 - Set Count=0&for /f "tokens=* usebackq" %%f in (`dir /a-d-s-h /b %Ext% 2^>nul^|find /v /c "%~nx0"`) do Set /a "Count=%%~f"
 
 - echo 壁纸数量: [%Count%]
 
 - if %Count% == 0 Color cf&echo 壁纸类型: ↓&echo  %Ext%&Call :Delay 3&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 /a-d-s-h /b /o:d %Ext% 2^>nul^|find /v "%~nx0"`) do (
 
 -     Copy "%%~f"+,, "%%~f" 1>nul 2>nul&Set "NWP=%%~f"&Goto 设置壁纸
 
 - )
 
 - Exit /b
 
  
- :随机切换
 
 - Set Num=1&Set /a RNum=%Random%%%%Count%+1 2>nul
 
 - Setlocal EnableDelayedExpansion
 
 - for /f "tokens=* usebackq" %%f in (`dir /a-d-s-h /b %Ext% 2^>nul^|find /v "%~nx0"`) do (
 
 -     if !Num! == %RNum% (Endlocal&Set RNum=[%RNum%]&Set "NWP=%%~f"&Goto 设置壁纸)
 
 -     Set /a Num+=1
 
 - )
 
 - Endlocal&Exit /b
 
  
- :设置壁纸
 
 - 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 /i "%OWP%" == "%NWP%" if %Count% gtr 1 Goto 随机切换
 
 - echo "%NWP%"|find /i "填充" 1>nul 2>nul&&Set "Style=填充"
 
 - echo "%NWP%"|find /i "适应" 1>nul 2>nul&&Set "Style=适应"
 
 - echo "%NWP%"|find /i "拉伸" 1>nul 2>nul&&Set "Style=拉伸"
 
 - echo "%NWP%"|find /i "平铺" 1>nul 2>nul&&Set "Style=平铺"
 
 - echo "%NWP%"|find /i "居中" 1>nul 2>nul&&Set "Style=居中"
 
 - echo "%NWP%"|find /i "跨区" 1>nul 2>nul&&Set "Style=跨区"
 
 - echo 适应模式: %Style%
 
 - echo %GP%: %RNum% ↓
 
 - echo %NWP%
 
 - Pecmd.exe /? 1>nul 2>nul&&(Pecmd.exe WALL "%NWP%"&® delete "HKCU\Control Panel\Desktop" /f /v "Wallpaper.PECMD" 1>nul 2>nul)||(reg add "HKCU\Control Panel\Desktop" /f /v "WallPaper" /t REG_SZ /d "%NWP%" 1>nul 2>nul)
 
 - Set var=&for %%i in (填充010, 适应06, 拉伸02, 平铺10, 居中00, 跨区022) do (echo "%%~i"|find /i "%Style%" 1>nul 2>nul&&Set "var=%%~i")
 
 - if defined var (
 
 -     reg add "HKCU\Control Panel\Desktop" /f /v "TileWallpaper" /t REG_SZ /d "%var:~2,1%" 1>nul 2>nul
 
 -     reg add "HKCU\Control Panel\Desktop" /f /v "WallpaperStyle" /t REG_SZ /d "%var:~3%" 1>nul 2>nul
 
 - )
 
 - Call :Flush
 
 - if not defined Args Call :Delay 1
 
 - Exit /b
 
  
- :Delay :: 延迟操作 <%1=Sec|延迟秒数> [%2=+|显示倒计时]。
 
 - if "%~2" == "+" (Set #=2) else Set #=1
 
 - if exist %WinDir%\System32\timeout.exe (timeout /t %~1 %#%>nul) else if exist %WinDir%\System32\choice.exe (choice /t %~1 /d y /n >nul) else ping 127.1 -n %~1 >nul
 
 - Goto :eof
 
  
- :Flush :: 可能不生效,需要手动重启资源管理器。
 
 - Set N=20
 
 - :FLoop
 
 - Set /a N-=1&@start "" rundll32.exe user32.dll,UpdatePerUserSystemParameters 1,True
 
 - if "%n%" neq "0" Goto FLoop
 
 - Goto :eof
 
  复制代码 
PE系统,调用 Pecmd WALL 命令设置桌面壁纸,很稳定都生效 
正常系统,注册表设置壁纸路径后,调用 rundll32.exe user32.dll,UpdatePerUserSystemParameters 1,True 刷新桌面,有一定概率不生效。需要多次刷新 
 
【支持脚本内部参数设置】 
Set "Ext=*.jpg *.jpeg *.png *.gif *.bmp" :: 支持壁纸格式 
Set "Style=拉伸" :: 默认壁纸适应模式 (填充, 适应, 拉伸, 平铺, 居中, 跨区) 
 
【支持命令行参数调用】 
-Next               按顺序设置脚本所在文件夹图片为桌面壁纸 (无参默认) 
-Random          按随机设置脚本所在文件夹图片为桌面壁纸 
+Next              按顺序复制脚本所在文件夹图片到系统Web目录,并设置为桌面壁纸 
+Random         按随机复制脚本所在文件夹图片到系统Web目录,并设置为桌面壁纸 
 
【支持通过图片文件名,设置壁纸为指定适应模式】 
若图片文件名带有以下名称,则设置壁纸为指定适应模式。 
填充, 适应, 拉伸, 平铺, 居中, 跨区 
例如:01_拉伸.jpg 
   02_平铺.png 
   03_居中.bmp 
 
【使用方法】 
复制源码到记事本保存,务必保存为ANSI格式,若为UTF-8格式执行会报错 
将脚本文件置于壁纸同一目录执行,不支持下级目录。 
 
(附件为旧版,帖子源码为新版) 
 
 |   
 
评分
- 
查看全部评分
 
 
 
 
 
 |