Board logo

标题: [原创代码] PowerShell 下载 BING 主页图片并设置为壁纸 [打印本页]

作者: WHY    时间: 2017-12-26 16:38     标题: PowerShell 下载 BING 主页图片并设置为壁纸

脚本实现功能:利用 Windows 任务计划,实现每天下载一次 BING 主页图片,并设置为桌面壁纸。
脚本运行方法:右键单击 BingPicture.bat,选择“以管理员身份运行”

以下脚本保存为 BingPicture.ps1
  1. #获取图片下载地址
  2. function GetPictureURL(){
  3.     $url = 'http://www.bing.com/HPImageArchive.aspx?idx=0&n=1';
  4.     $web = New-Object System.Net.WebClient;
  5.     $web.Encoding = [Text.Encoding]::UTF8;
  6.     [xml]$xml = $web.DownloadString($url);
  7.     $pictureURL = ($xml|Select-XML '//url').Node.InnerText -replace '\d+x\d+', '1920x1080';
  8.     return 'https://cn.bing.com' + $pictureURL;
  9. }
  10. #下载图片
  11. function SavePictureFile($pictureURL, $pictureDir){
  12.     $pictureFile = $pictureDir + ($pictureURL -replace '.+/', '\\');
  13.     $web = New-Object System.Net.WebClient;
  14.     $web.DownloadFile($pictureURL, $pictureFile);
  15.     return $pictureFile
  16. }
  17. #将图片设置为桌面壁纸
  18. function SetWallpaper($pictureFile){
  19.     $shell = New-Object -Com Shell.Application;
  20.     $null  = $pictureFile -match '(.+)\\([^\\]+)$';
  21.     $verbs = $shell.NameSpace($matches[1]).ParseName($matches[2]).Verbs();
  22.     $verbs | ?{$_.Name -like '设置为桌面背景*'} | %{ $_.DoIt();}
  23. }
  24. $path = $MyInvocation.MyCommand.Path -replace '[^\\]+$'; #脚本所在路径
  25. $pictureDir = $path + 'Bing';                            #图片文件夹
  26. If (!(Test-Path $pictureDir)) { $null = New-Item $pictureDir -ItemType Directory; }
  27. $pictureFile = SavePictureFile (GetPictureURL) $pictureDir;
  28. SetWallpaper $pictureFile
复制代码
以下脚本保存为 BingPicture.bat,保存位置:与 BingPicture.ps1 同目录。
  1. @echo off
  2. Rem 删除名称为 Bing 的任务计划(如果有)
  3. schtasks /delete /tn Bing /f 2>nul
  4. Rem 创建名称为 Bing 的任务计划,每天08:30运行Powershell脚本(用户密码如果为空,删除/rp * 即可)
  5. 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
  6. pause
复制代码
如何取消任务计划?注释掉 BingPicture.bat 第6行,然后再次以管理员身份运行  BingPicture.bat
作者: yhcfsr    时间: 2017-12-26 16:59

占楼,感谢分享。这就去实验一翻




欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2