windows通过批处理让电脑每天自动设置bing桌面背景
概要
{
"images": [
{
"startdate": "20250610",
"fullstartdate": "202506101600",
"enddate": "20250611",
"url": "/th?id=OHR.FlamingosNamibia_ZH-CN3639748956_UHD.jpg&rf=LaDigue_UHD.jpg&pid=hp&w=3840&h=2160&rs=1&c=4",
"urlbase": "/th?id=OHR.FlamingosNamibia_ZH-CN3639748956",
"copyright": "大红鹳,吕德里茨,纳米比亚 ( Karine Aigner/TANDEM Stills + Motion)",
"copyrightlink": "/search?q=%e5%a4%a7%e7%ba%a2%e9%b9%b3&form=hpcapt&mkt=zh-cn",
"title": "潮汐间的芭蕾",
"quiz": "/search?q=Bing+homepage+quiz&filters=WQOskey:%22HPQuiz_20250610_FlamingosNamibia%22&FORM=HPQUIZ",
"wp": true,
"hsh": "1f6b2ef4d9ddd344a0ec8166b041b206",
"drk": 1,
"top": 1,
"bot": 1,
"hs": []
}
],
"tooltips": {
"loading": "正在加载...",
"previous": "上一个图像",
"next": "下一个图像",
"walle": "此图片不能下载用作壁纸。",
"walls": "下载今日美图。仅限用作桌面壁纸。"
}
}
下面就介绍如何通过批处理及vbs脚本,无需安装第三方软件实现电脑每天自动设置bing每日一图壁纸。
脚本实现
change_desktop_background.bat
把下面的叫保存为change_desktop_background.bat文件,编码设置为UTF-8,通过双击运行该文件就可以自动获取并设置壁纸了,非常好用。
该批处理的主要功能是通过bing的api获取图片的路径,并把获取到的图片保存在本地的Pictures/BingWallpapers路径下,最后把图片设置为桌面的背景图片。
@echo off & chcp 65001>nul & setlocal enabledelayedexpansion
echo.&echo 设置Bing每日桌面背景 &echo.
for /f "usebackq delims=" %%P in (`powershell -nologo -noprofile -command "[Environment]::GetFolderPath('MyPictures')"`) do (
set "downloadDir=%%P\BingWallpapers"
)
if not exist "!downloadDir!" mkdir "!downloadDir!"
echo 正在获取图片信息...
set "baseUrl=https://www.bing.com"
set "jsonUrl=!baseUrl!/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=zh-CN&nc=1614319565639&pid=hp&FORM=BEHPTB&uhd=1&uhdwidth=3840&uhdheight=2160"
for /f "usebackq tokens=1,* delims==" %%A in (`
powershell -nologo -command ^
"$json = Invoke-RestMethod -Uri '!jsonUrl!' -UseBasicParsing;" ^
"$img = $json.images[0];" ^
"Write-Output ('imageUrl=!baseUrl!' + $img.url);" ^
"Write-Output ('imageName=' + $img.enddate + '_'+ $img.title);" ^
`) do (
set "%%A=%%B"
)
set "imageFile=!downloadDir!\!imageName!.jpg"
if not exist !imageFile! (
echo 正在下载图片:!imageName!.jpg
if defined imageUrl (
curl.exe --retry 2 --max-time 30 -so "!imageFile!" "!imageUrl!"
)
)
if exist "!imageFile!" (
echo 正在设置桌面背景...
powershell -Command "Add-Type -TypeDefinition 'using System.Runtime.InteropServices; public class Wallpaper { [DllImport(\"user32.dll\", CharSet=CharSet.Auto)] public static extern int SystemParametersInfo(int uAction, int uParam, string lpvParam, int fuWinIni); }'; [void][Wallpaper]::SystemParametersInfo(20, 0, '!imageFile!', 3)"
echo 桌面背景已更新为: !imageFile!
) else (
echo 未能下载或找到图片文件
)
timeout /t 10
上面的批处理脚本只能在我们手动点击的时候才会去获取新的图片,还是比较麻烦,那有没有办法让每天都让电脑自动获取图片并设置背景呢?
有的~ 有的~ 兄弟,我们可以借助windows的任务计划程序来实现。
任务计划程序,也称计划任务。这是Microsoft Windows中的一个组件,可以预先计划在特定时间或指定时间后启动程序或脚本。
change_desktop_background.vbs
前面的批处理还有一个文件,每次运行的时候都会弹出一个黑窗口,很影响我们的日常工作,我们可以创建一个vbs脚本来隐藏运行刚才的批处理脚本。当然这一步不是必须的,仅仅是为了隐藏运行。
把下面的代码保存到change_desktop_background.vbs文件里面,放在批处理的同级目录下。并运行测试一下是否可以切换桌面背景。
Set fso = CreateObject("Scripting.FileSystemObject")
vbsDir = fso.GetParentFolderName(WScript.ScriptFullName)
Set ws = CreateObject("WScript.Shell")
ws.CurrentDirectory = vbsDir
ws.Run """change_desktop_background.bat""", 0
下面就开始创建任务计划程序了。
win+r输入taskschd.msc打开任务计划程序。- 在右侧的任务计划程序库下面点击
创建任务... 常规的名称栏位 写Bing每日图片,或者你喜欢的名字触发器点击新建,我这里设置的是在登录电脑后延迟1分钟,并且每12小时执行一次。可以根据自己的情况进行设置,小时不能选,但是可以手动修改。

在
操作里面新建选启动程序,程序或脚本选我们创建的vbs文件。

确定后可以选中我们创建好的任务点击右侧的运行检验一下是否可以正常运行。
至此我们电脑就可以每天设置新的背景图片啦~~~
windows通过批处理让电脑每天自动设置bing桌面背景的更多相关文章
- 获取bing图片并自动设置为电脑桌面背景(C++完整开源程序)
众所周知,bing搜索网站首页每日会更新一张图片,张张漂亮(额,也有一些不合我口味的),特别适合用来做电脑壁纸. 我们想要将bing网站背景图片设置为电脑桌面背景的通常做法是: 上网,搜索bing 找 ...
- 【开源程序(C++)】获取bing图片并自动设置为电脑桌面背景
众所周知,bing搜索网站首页每日会更新一张图片,张张漂亮(额,也有一些不合我口味的),特别适合用来做电脑壁纸. 我们想要将bing网站背景图片设置为电脑桌面背景的通常做法是: 上网,搜索bing 找 ...
- 获取bing图片并自动设置为电脑桌面背景(使用 URLDownloadToFile API函数)
众所周知,bing搜索网站首页每日会更新一张图片,张张漂亮(额,也有一些不合我口味的),特别适合用来做电脑壁纸. 我们想要将bing网站背景图片设置为电脑桌面背景的通常做法是: 上网,搜索bing 找 ...
- windows bat批处理基础命令学习教程(转载)
一.基础语法: 1.批处理文件是一个“.bat”结尾的文本文件,这个文件的每一行都是一条DOS命令.可以使用任何文本文件编辑工具创建和修改.2.批处理是一种简单的程序,可以用 if 和 goto 来控 ...
- Windows常用批处理命令 CMD BAT (CMD目录操作等dir)
Windows常用批处理 CMD BAT CMD获取文件夹下所有文件的名称并打印(输出)到指定目录 dir C:\Users\\Desktop\png\*.*/s >c:\.txt //cmd ...
- 初尝Windows 下批处理编程
本文叫“ 初尝Windows 下批处理编程”是为了延续上一篇“初尝 Perl”,其实对于博主而言批处理以及批处理编程早就接触过了. 本文包括以下内容 1.什么是批处理 2.常用批处理命令 3.简介批处 ...
- windows中实现python,redis服务自动重启(任务计划程序+bat脚本)
需求:银行电脑无法自动开机,只能 通过 应用相关服务每天自动重启的方式实现 服务更新并且防止服务假死,内存过大 等情况 相关工具:win10系统中,使用windows自带的任务计划程序 和 bat脚本 ...
- C#操作电脑多显示器设置
电脑多显示器设置 第一种方式 通过使用api函数SetDisplayConfig来设置.这种方式在某些电脑中设置有几率会导致电脑黑屏 使用代码如下: private const uint SDC_AP ...
- 【转】WPF: 自动设置Owner的ShowDialog 适用于MVVM
原文地址:http://www.mgenware.com/blog/?p=339 WPF中的Windows的ShowDialog方法并没有提供设置Owner的参数,开发者需要在ShowDialog前设 ...
- PowerShell脚本自动设置安卓手机wifi代理
在实际测试工作中,经常要将安卓手机通过wifi代理的形式连接到本机的fiddler或charles服务器代理进行抓包测试.最近一直在想,有没有什么方法可以自动设置安卓手机的wifi代理,曾经想通过修改 ...
随机推荐
- How to use the Ubuntu
How to use the Ubuntu Introduction As far as I have noted, I will force myself to write all my blo ...
- Linux运维面试题之:Root密码忘记如何解决
目录 6.5 Root密码忘记如何解决 6.5.1 系统自带救援模式 6.5.2 U盘.光盘救援系统 6.5 Root密码忘记如何解决 解决方案有两种:自救,别人救 解决方案 应用场景 1️⃣ 系统自 ...
- 手写Rpc框架-1
手写Rpc框架 - 导读 git仓库-all-rpc GTIEE:https://gitee.com/quercus-sp204/all-rpc [参考源码 yrpc] 1. Rpc概念 RPC 即远 ...
- 记CentOs服务器内存使用满的解决办法
使用的一个应用服务器,weblogic部署,nginx分配,在使用了半个月的时间里,服务器内存达到杀掉服务器进程之后查看被删除但是仍然被应用程序占用的文件列表由于我删掉了日志里所以东西,所以导致后来我 ...
- Delphi 非主窗体(即子窗体)在任务栏显示按钮
type TForm2 = class(TForm) private { Private declarations } public { Public declarations } procedure ...
- Delphi 判断当前系统是否64位
uses Winapi.Windows; function IsWin64: Boolean; var IsWow64Process: function(Handle: THandle; var Re ...
- 代码块--java进阶day03
1.代码块 1.局部代码块 定义在方法中的一对大括号,可以提早释放内存,走完{}里的逻辑后就会被释放,在之后的编程中无法使用 2.构造代码块 位置在类中,方法外的{},在构造方法执行的时候,构造代码块 ...
- devops 2024
What is DevOps? DevOps is a mindset, a culture, and a set of technical practices. It provides commun ...
- Python科学计算系列6—积分
1.定积分 例1:求下列函数的定积分 代码如下: from sympy import * x = symbols('x') f = integrate(exp(-x), (x, 0, oo)) pri ...
- JDK1.8的ConcurrentHashMap的put方法源码
一.JDK1.8的ConcurrentHashMap的put方法源码 ConcurrentHashMap 是 Java 并发包(java.util.concurrent)中的一个高性能线程安全哈希表实 ...