WindowsTerminal 美化-壁纸随机更换


一. 相关网址


二. 壁纸随机更换思路

  • WindowsTerminal的壁纸在其settings.json文件中可自定义指定
  • 编写脚本,读取指定文件夹下的所有壁纸文件,随机获取一张壁纸
  • 将壁纸复制到settings.json中指定的路径下,若有既存的文件,强制覆盖
  • 配置定时任务,设置触发器,在用户启动电脑的时候,触发脚本执行

三. 指定 WindowsTermina 壁纸路径

⏹如下图所示,指定壁纸的路径和透明度

在这里插入图片描述

四. 编写脚本,随机替换壁纸

⏹文件夹详情

在这里插入图片描述

4.1 powershell脚本

change_background_image.ps1

# 父文件夹
$Paretn_Path = 'F:\99-Windows_Terminal\'
# 壁纸文件夹
$Wallpaper_BK_Path = "$($Paretn_Path)\02-Wallpaper_BK\"
# Windows_Terminal所需壁纸文件路径
$Wallpaper_Path = "$($Paretn_Path)\01-Wallpaper\img.jpg"

# 递归获取所有的壁纸的绝对路径
$Wallpaper_list = Get-ChildItem -Path $Wallpaper_BK_Path -Recurse -File `
| ForEach-Object { $_.FullName }

# 从所有的壁纸中随机获取一张壁纸下标
$Random_Wallpaper_Index = Get-Random -Minimum 0 -Maximum (($Wallpaper_list | Measure-Object).Count - 1)
# 获取要移动的壁纸对象
$Random_Wallpaper_Full_Path = $Wallpaper_list[$Random_Wallpaper_Index]

# 复制壁纸路径到指定指定文件夹中,如果有同名文件直接强制覆盖
Copy-Item -Path $Random_Wallpaper_Full_Path -Destination $Wallpaper_Path -Force

4.2 .bat批处理脚本

change_background_image.bat

  • 部分电脑可能禁用PowerShell代码,因此提供.bat批处理脚本
  • 由于批处理的代码晦涩难懂,此处将批处理代码与PowerShell代码相结合,在批处理中文件中调用批处理文件中内含PowerShell代码
@(echo '> NUL
echo off)

setlocal ENABLEDELAYEDEXPANSION

set ARGV0=%~f0
set ARGS=%*
set ARGC=0

for %%V in (%*) do (
    set /a ARGC=!ARGC!+1
    set ARGV!ARGC!=%%V
)

PowerShell.exe -Command "Invoke-Expression -Command ((Get-Content \"%ARGV0: `=` `%\") -join \"`n\")"
exit /b %errorlevel%
') | Out-Null

# -------------------以下为PowerShell代码部分-------------------

$argc=$ENV:ARGC
$argv=@()
for($i=0;$i -le $argc;$i++){
    $argv += (Get-ChildItem "ENV:ARGV$i").Value
}

# -------------------PowerShell代码处理的主体部分-------------------

# 父文件夹
$Paretn_Path = 'F:\99-Windows_Terminal\'
# 壁纸文件夹
$Wallpaper_BK_Path = "$($Paretn_Path)\02-Wallpaper_BK\"
# Windows_Terminal所需壁纸文件路径
$Wallpaper_Path = "$($Paretn_Path)\01-Wallpaper\img.jpg"

# 递归获取所有的壁纸的绝对路径
$Wallpaper_list = Get-ChildItem -Path $Wallpaper_BK_Path -Recurse -File `
| ForEach-Object { $_.FullName }

# 从所有的壁纸中随机获取一张壁纸下标
$Random_Wallpaper_Index = Get-Random -Minimum 0 -Maximum (($Wallpaper_list | Measure-Object).Count - 1)
# 获取要移动的壁纸对象
$Random_Wallpaper_Full_Path = $Wallpaper_list[$Random_Wallpaper_Index]

# 复制壁纸路径到指定指定文件夹中,如果有同名文件直接强制覆盖
Copy-Item -Path $Random_Wallpaper_Full_Path -Destination $Wallpaper_Path -Force

四. 配置定时任务,添加触发器

⏹任务计划程序

  • 快捷键:Win + R打开运行窗口
  • 在运行窗口内输入taskschd.msc,打开任务计划程序

⏹在操作选项卡中,点击创建基本任务,打开任务创建向导。

在这里插入图片描述

⏹当我们使用powerhell脚本时,需要指定通过powershell.exe来运行,还需要配置脚本的参数,指定脚本路径

在这里插入图片描述

⏹由于是开机启动的脚本,还需要配置完成之后,在属性选项卡中进行如下配置。

在这里插入图片描述


五. 效果

⏹按照上述配置之后,每次开机或重启之后,WindowsTerminal的壁纸就会更换。
也可根据需求,选择工作站锁定时工作站解锁时,触发脚本执行。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值