找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 18257|回复: 1

[原创代码] PowerShell 下载 BING 主页图片并设置为壁纸

[复制链接]
发表于 2017-12-26 16:38:42 | 显示全部楼层 |阅读模式
脚本实现功能:利用 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
发表于 2017-12-26 16:59:21 | 显示全部楼层
占楼,感谢分享。这就去实验一翻
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-16 22:03 , Processed in 0.017773 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表