使用批处理命令制作_切换壁纸 适用于PE环境 @echo off if /i %UserName% == SYSTEM (Goto GotAdmin) else (reg query HKLM\SYSTEM\ControlSet001\Control\MiniNT 1 nul 2 nul&&Goto GotAdmin) :BatchGotAdmin Set...
使用批处理命令制作_切换壁纸 适用于PE环境
@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"
Title 切换壁纸&(if exist %WinDir%\System32\ureg.dll Mode 40,10 2>nul)&Color 2f
:Start
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 *.*^|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 /a-d-s-h /b /o:d *.*^|find /v "%~nx0"`) do (
Copy "%%~f"+,, "%%~f" 1>nul 2>nul&Set "NWP=%%~f"&Goto 设置壁纸
)
Exit /b
:随机切换
Set /a RNum=%Random%%%%Count%+1 2>nul
Set Num=1
Setlocal EnableDelayedExpansion
for /f "tokens=* usebackq" %%f in (`dir /a-d-s-h /b *.*^|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 %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&&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
未经允许不得转载作者:
GRUD,
转载或复制请以
超链接形式
并注明出处
科技之星网站 。
原文地址:
《
使用批处理命令制作_切换壁纸 适用于PE环境》
发布于
2025-4-6
(禁止商用或其它牟利行为)版权归原作者本人所有,您必须在下载后24小时内删除, 感谢您的理解与合作







x
您好!看起来您可能不小心发表了一个简短的评论。关于文章“使用批处理命令制作_切换壁纸 适用于PE环境”,如果有具体问题或想要了解更多细节,请随时告诉我,我会很乐意为您提供更详细的帮助和解答。期待您的进一步交流。