PowerShell 下载 BING 主页图片并设置为壁纸
脚本实现功能:利用 Windows 任务计划,实现每天下载一次 BING 主页图片,并设置为桌面壁纸。脚本运行方法:右键单击 BingPicture.bat,选择“以管理员身份运行”
以下脚本保存为 BingPicture.ps1[code]#获取图片下载地址
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[/code]以下脚本保存为 BingPicture.bat,保存位置:与 BingPicture.ps1 同目录。[code]@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[/code]如何取消任务计划?注释掉 BingPicture.bat 第6行,然后再次以管理员身份运行 BingPicture.bat 占楼,感谢分享。这就去实验一翻
页:
[1]