标题: [原创代码] PowerShell 下载 BING 主页图片并设置为壁纸 [打印本页]
作者: WHY 时间: 2017-12-26 16:38 标题: PowerShell 下载 BING 主页图片并设置为壁纸
脚本实现功能:利用 Windows 任务计划,实现每天下载一次 BING 主页图片,并设置为桌面壁纸。
脚本运行方法:右键单击 BingPicture.bat,选择“以管理员身份运行”
以下脚本保存为 BingPicture.ps1- #获取图片下载地址
- function GetPictureURL(){
- $url = 'http://www.bing.com/HPImageArchive.aspx?idx=0&n=1';
- $web = New-Object System.Net.WebClient;
- $web.Encoding = [Text.Encoding]::UTF8;
-
- [xml]$xml = $web.DownloadString($url);
- $pictureURL = ($xml|Select-XML '//url').Node.InnerText -replace '\d+x\d+', '1920x1080';
- return 'https://cn.bing.com' + $pictureURL;
- }
-
- #下载图片
- function SavePictureFile($pictureURL, $pictureDir){
- $pictureFile = $pictureDir + ($pictureURL -replace '.+/', '\\');
- $web = New-Object System.Net.WebClient;
- $web.DownloadFile($pictureURL, $pictureFile);
- return $pictureFile
- }
-
- #将图片设置为桌面壁纸
- function SetWallpaper($pictureFile){
- $shell = New-Object -Com Shell.Application;
- $null = $pictureFile -match '(.+)\\([^\\]+)$';
- $verbs = $shell.NameSpace($matches[1]).ParseName($matches[2]).Verbs();
- $verbs | ?{$_.Name -like '设置为桌面背景*'} | %{ $_.DoIt();}
- }
-
- $path = $MyInvocation.MyCommand.Path -replace '[^\\]+$'; #脚本所在路径
- $pictureDir = $path + 'Bing'; #图片文件夹
- If (!(Test-Path $pictureDir)) { $null = New-Item $pictureDir -ItemType Directory; }
-
- $pictureFile = SavePictureFile (GetPictureURL) $pictureDir;
- SetWallpaper $pictureFile
复制代码
以下脚本保存为 BingPicture.bat,保存位置:与 BingPicture.ps1 同目录。- @echo off
- Rem 删除名称为 Bing 的任务计划(如果有)
- schtasks /delete /tn Bing /f 2>nul
-
- Rem 创建名称为 Bing 的任务计划,每天08:30运行Powershell脚本(用户密码如果为空,删除/rp * 即可)
- schtasks /create /ru %userName% /rp * /tn Bing /tr "PowerShell -w minimized -c \"Set-ExecutionPolicy -Scope Process Bypass -Force;^&\\\"%~dp0bingPicture.ps1\\\"\"" /sc Daily /st 08:30
-
- pause
复制代码
如何取消任务计划?注释掉 BingPicture.bat 第6行,然后再次以管理员身份运行 BingPicture.bat
作者: yhcfsr 时间: 2017-12-26 16:59
占楼,感谢分享。这就去实验一翻
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |