Trở thành chuyên gia hệ thống cùng siêu sò (phần 3): tải ảnh nền từ Bing

 

Trở thành chuyên gia quản trị hệ thống cùng Siêu sò (Powershell)

Trở thành chuyên gia hệ thống cùng siêu sò (phần 2)

Qua 2 phần thì mình đã trình bày qua Powershell đã cho anh em đồng đạo những kiến thức cơ bản về Powershell thì nay mình sẽ mang đến cho anh em 1 ít chút vui vui từ Powershell để tình cảm của anh em dành cho công cụ nhỏ mà có võ này nhiều thính hơn :3

y-nghia-tu-tha-thinh

Cái hay hay mà mình mang đến ngày hôm này là 1 script dùng để download ảnh nền từ Bing. Chắc anh em chẳng xa lạ với cái thằng Bing nhỉ :v thằng này của anh Mềm và Nhỏ (Microsoft) đẻ ra để cạnh tranh vời anh Gồ về cái mảng tìm kiếm.

maxresdefault

Đối với anh em Việt Nam thì ít khi dùng vì khả năng của nó ở nước ta cũng bị giới hạn khá nhiều. Thằng này mình thấy cái ưu điểm lớn nhất của nó tại thời điểm bây giờ đó là nó có khá nhiều ảnh đẹp. Mỗi ngày vào trang chủ nó là có 1 ảnh mới khá là cool

cool-dog

Chính vì vậy mình có cóp nhặt trên mạng 1 script để tự động lấy ảnh từ Bing mỗi ngày :v. Anh em ngắm nhìn quá thử nhé :v

Tận dụng các kiến thức ở bài trước thì đoạn code từ 1-3 chỉ để mình set giá trị cho biến trong script

Đến cái dòng thứ 4 thì có lật mỏi mắt 2 bài viết trước anh em cũng chả tìm được đoạn $env:USERPROFILE :v Cái này dùng để lấy giá trị thư mục mặc định của tài khoản trong Windows. Đối với máy mình thì đó sẽ là

C:\Users\HOANG

Dòng thứ 5 cũng là 1 cái khác là của Powershell so với C#. Thay vì phải cộng chuỗi để tạo thư mục như dưới

$BingImageFullPath = $DownloadDirectory) + “\” + $ImageFileName

thì ta sử dụng cách

 $BingImageFullPath = “$($DownloadDirectory)\$($ImageFileName)”

2 cái này cho ra kết quả như nhau là đường link để lưu ảnh trong máy tính nên anh em dùng 1 trong 2 cách đều được. Tuy vậy thì 1 số trường hợp thì mình thấy cách 1 sẽ cho ra kết quả không dùng được ở 1 số hàm powershell nên khuyến khích theo cách 2 nhé :v

Dòng 8 thì để tạo thư mục trong máy tính theo đường dẫn anh em ta quy định

Bắt đầu từ dòng 10 là đoạn để lấy thông tin danh sách ảnh nền từ Bing bằng cách sử dụng WebClient rồi ép thành kiểu XML thể hiện qua đoạn [xml]$Bingxml

Với biến $Bingxml ta truy cập vào từng phần tử của XML theo cú pháp $Bingxml.images.image.urlBase. Đoạn này thì là đi từ root vào element images rồi trong images ta lấy image sau đó là urlBase là element chứa link ảnh (vất vả vờ lờ)

e8283e40-63ce-43d9-a8c6-14401a61c5a6

Đoạn dưới thì ta kiểm tra xem ảnh đã được lưu trong thư mục chưa. Nếu chưa thì ta tiến hành tải ảnh về bằng cách sử dụng WebClient. Các đồng dâm chú ý là mình có comment 1 dòng trên dòng này, dòng đó có ý nghĩa đối với Powershell 3.0 trở lên thì mới được hỗ trợ cmdlet đó :v Với các máy sử dụng Powershell 2.0 như máy ở công ty mình thì chỉ dùng được thằng WebClient thôi.

Còn đoạn cuối cùng là sử dụng khi trường hợp nó down chậm quá chưa xong cái ảnh thì anh em cho cháu nó đợi tí ấy mà :3

keep-calm-and-waiting-for-you-ecz235desi46-600x700

Kết

Anh em khi kết hợp cái script trên vơi Windows Scheduler thì có thể hẹn giờ cho máy tính hàng ngày tự động tải ảnh về xem xét nhìn ngắm :v Nếu các anh em thích thì có lẽ mình sẽ nghiên cứu Powershell để viết script lấy ảnh từ mấy trang girl xinh cho anh em thưởng lãm :v

BONUS

Cho anh em thêm đoạn script set ảnh nền khi lấy ảnh từ Bing nữa. Đoạn này viết tiếp vào script trên là được :V

 

Advertisements

4 thoughts on “Trở thành chuyên gia hệ thống cùng siêu sò (phần 3): tải ảnh nền từ Bing

  1. Pingback: Xây dựng hệ thống CI với Powershell | Code, code and more code

  2. Pingback: Tự động tán gái qua SMS (Trở thành chuyên gia hệ thống cùng siêu sò phần 5) | Code, code and more code

  3. Pingback: Tớ đã học python như thế nào | Code, code and more code

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s