山を歩けば、上手くいく!

ケトハイカー輪太郎の、糖質ゼロの山歩き記録です!

Windows スポットライト。気に入った壁紙をバッチファイルで保存している、というお話。

皆さん、いかがお過ごしでしょうか。輪太郎です。

 

さて今日は、どうでもいいようなPCの話題です。

皆さんは、PCの壁紙をどうされていますか?

 

私は以前、真っ黒でした(笑)。

余分にメモリを食わせる事もないし、シンプルで見やすいからです。

 

が、いつからか、Windowsスポットライトに設定するようになりました。

何故そうしたのかは、全く覚えておりません(汗)。

 

さて、Windowsスポットライトって何? かと言いますと、、。

ググると、AI概要が以下のように教えてくれます。

 

Windowsの「スポットライト」は、デスクトップやロック画面の背景を、Microsoftが提供する美しい写真に自動的に切り替える機能です。定期的に新しい画像に変わるので、いつも新鮮な気分でPCを楽しめます。

 

実は、コレがなかなか良いのです。

で、それがどの国の風景なのか気になったりします。

それを知りたい場合ですが、Windowsスポットライトを設定していると、デスクトップ上に「この写真についての詳しい情報」というアイコンが表示されますので、それをクリックするとブラウザ(Edge)が立ち上がり、画像の情報が表示されます。

 

で、気に入った壁紙があると、保存しておきたくなります。

私は、画像保存用のバッチファイルを作成して、保存しております。

ニーズがあるかは謎ですが(笑)、その方法を備忘録として書いておきます。

 

バッチファイルとは何か、、、も書いておいた方が良いでしょうか(笑)。

ググると、AI概要が以下のように教えてくれます。

 

バッチファイルとは、Windowsコマンドラインで実行できるコマンドをまとめたテキストファイルです。拡張子が「.bat」で、バッチ処理(一連のコマンドをまとめて実行すること)に使用されます。

 

平たく言えば、手作業の自動化です。

例えば、ファイルをコピーして、名前を変えて、特定のフォルダに保存する、、、といった手動で行う作業を自動化するものです。

 

それが1度きりならいいのですが、毎日のように同じ動作を何度も繰り返すとしたら、自動化した方がラクチンですよね。

その場合は、バッチファイルにやりたい動作をコマンドとして記述し、そのファイルをクリックするだけで実行するという、便利ツールなんです。

 

Windows前の世界は、パソコンに何かしてもらいたい場合、コマンドプロンプトに命令文を打ち込んでやる必要がありました。パソコンはその命令文で動くわけですね。それは今も変わりません。が、手作業だと非常に手間です。

 

Windowsが画期的で爆発的に普及したのは、わざわざ命令文をダラダラ打ち込まなくても、、、つまり専門的な知識が無くても、あらかじめ命令文が書かれたボタンを押すことによって、キーボードに手打ちする手間を省略できた点にあります。コマンドなど知らなくても、誰でもカンタンにパソコンを動かせるようになったのです。

 

さて、バッチファイルはコマンド記述の集まり、、、つまり一種のプログラムです。

が、プログラムと言っても、難しいことはありません。

 

基本的なことを理解していなくても、やりたい事をググれば、先人たちが作ったバッチファイルを簡単に入手できます。

また、ちょっと仕組みを理解してしまえば、それらを自分好みに変えることで、とても便利なツールが作成できるのです。

本格的なプログラムの知識が無くても、カンタンに作成できますし、また、そこからプログラムをどんどん学ぶキッカケになるかも知れませんね。

 

では早速、今回作ったバッチファイルの内容を先に書いておきます。

 

--------------------------------------------

rem 今日の日付を取得(yyyymmdd)
set nowdate=%date:~0,4%%date:~5,2%%date:~8,2%

rem 今日の時刻を取得(hhmmss
set time2=%time: =0%
set nowtime=%time2:~0,2%%time2:~3,2%%time2:~6,2%
   

rem 壁紙をコピペする

echo F | xcopy C:\Users\User\AppData\Roaming\Microsoft\Windows\Themes\TranscodedWallpaper D:\wall\%nowdate%_%nowtime%_.jpg

 

rem メッセージをポップアップ表示する
msg.js

--------------------------------------------

 

メモ帳かなにかにこれをコピペし、名前を付けて保存します。

で、拡張子は「.txt」ではなく、「.bat」にします。

そうすることで、そのファイルをクリックすると、上記の内容が実行できるようになります。

 

今回はコマンド解説することが趣旨ではないので、カンタンに内容だけ説明します。

 

rem と書かれた行は、単なるコメントとして記述してあります。

remコマンドは、その行の文章すべてをパソコンがコメントとして無視してくれます。記述が多数になると、どの行に何を書いたのか、こんがらがってきますので、コメントを記述して整理しておくと、あとからのメンテナンスが容易になるので、慣れないうちはremコマンドを使って、コメントを書いておくと便利です。

 

さて、まず壁紙に名前を付けて保存する、という事を自動化します。

ファイル名は、yyyymmdd、つまり、西暦・月・日、をファイル名としたいと思います。

 

が、windowsスポットライトは、一日のうちに数回、変わる場合があります。その場合、同じ日付のファイル名では重複してしまうため、年月日のほかに、時刻も付けておけば、重複しませんよね。

 

なので、まずは今日が何年何月何日か、取得します。

set nowdate=%date:~0,4%%date:~5,2%%date:~8,2%

 

また、何時何分何秒なのか、取得します。

set nowtime=%time2:~0,2%%time2:~3,2%%time2:~6,2%

 

これで、

年月日は「nowdate」として、

時分秒は「nowtime」として、データを取得できました。

 

次に、コピーしたい壁紙についてです。

今、windowsスポットライトに表示されている壁紙が、PC上のどこにあるのかが分からないと、コピーできませんよね。

そのファイルは、

C:\Users\User\AppData\Roaming\Microsoft\Windows\Themes\TranscodedWallpaper

なんです。

 

このファイルを、コピーするコマンドを打ち込んでやります。

xcopy」 というコマンドを使います。

 

ただ、このコマンドで命令してやると、パソコンは一丁前に、

「ファイル名ですか、ディレクトリ名ですか」

と聞いてきます。どちらをコピーするのか、パソコンには分からないのですね。

いちいち聞かれて、その都度答えていたら、せっかく自動化しようとするモノなのに、手間が一つ増えてしまいますよね。

 

なので、「ファイルをコピーしてね」とあらかじめ指定しておくと、パソコンが聞いてくることはありません。

 

それが、

「echo F | xcopy

の意味です。もしディレクトリ(今はフォルダと言いますね)をコピーしたいのであれば、

「echo D | xcopy

と書いてやれば、パソコンが聞いてくることはありません。

ファイルの F と、ディレクトリの D 、ですね。

 

さて、コピーコマンドはとてもシンプルです。

「コピーしたい元のファイルのフルパス」(半角スペース)「コピー先のファイルのフルパス」

です。

 

なので、今回コピーしたいのは、現在表示されているファイル、

C:\Users\User\AppData\Roaming\Microsoft\Windows\Themes\TranscodedWallpaper

を書いてやり、半角スペースを入れて、自分が保存したい場所とファイル名の、

D:\wall\%nowdate%_%nowtime%_.jpg

を続けて書いてあげれば良いのです。

 

私は、Dドライブの「wall」というフォルダにファイルを保存していますので、ココはご自身のパソコンの保存したいフォルダに書き換えて下さい。

 

で、ファイル名ですが、、、。

年月日は先ほど取得した、「%nowdate%」、

で、時刻との間にアンダーバーを入れたいので、続けて「_」、

時刻は先ほど取得した、「%nowtime%」、

そして私はそのあとに再び「_」を入れています。

なぜなら、その後に画像がどの国のどの場所であるか、書いておきたい場合があるからです。

そして最後に拡張子「.jpg」を付けます。

 

そうすると、現在表示されている「TranscodedWallpaper」というファイルをコピーし、Dドライブのwallというフォルダに、例えば「20250501_074913_.jpg」というファイル名として保存できます。

 

カンタンでしょ?

 

で、ファイル名に画像の詳細を_以下に書いておけば、ここはどこだか分かりやすいです。そこだけは手作業となってしまいますが、別に書かなくても良いですよね。

ただ私は、気に入った壁紙にはメモ書きしています。

例えば、「20250501_074913_ヨセミテ国立公園トンネル ビュー.jpg」といった具合です。

 

あ、最後の「msg.js」についてです。

バッチファイルは、ファイルをダブルクリックすると実行されます。が、たまに「あれ、ちゃんとダブルクリックできてたかな」なんて事、ありません?

シングルクリックしかされていないと、バッチファイルは実行されず、当然壁紙は保存されません。

 

なので私は、バッチファイルが実行されたら、

「壁紙を保存しました!」

というメッセージをポップアップ表示させるようにしました。そうすれば、ポップアップが表示されなければ、壁紙が保存されていない事が分かります。

 

メッセージを表示させる方法はいくつかありますが、私は、「.js」ファイルを作成して使っています。

バッチファイルと同じように、メモ帳か何かに、

「WScript.Echo("壁紙を保存しました!");」

と記述してやり、ファイル名を付けて、拡張子は js として保存します。

上記の場合は、「msg.js」というファイルを作成しました。

必ずバッチファイルと同じフォルダに保存しておいて下さい。

 

で、バッチファイルの最後にそのファイル名を書いてあげるだけで、そのファイルを実行することが出来ます。

" " の中の文章は、お好きなメッセージに書き換えて下さい。

 

作成したファイルのショートカットをデスクトップに置いておけば、ダブルクリックするだけで、今表示されている壁紙が保存されます。

 

 

さて、以上がwindowsスポットライトを保存する作業を、バッチファイルで自動化する方法でした。

 

バッチファイルは、手軽に様々な作業を自動化できます。

例えば、フォルダに溜まった画像の名前を一気に変更したり、特定のファイルを自動削除したり、ExcelAccessのマクロを実行させたり出来ます。

 

特に、プログラムに興味があるお子さんに学習させるには、最適のツールです。windowsパソコンがあれば、特殊な環境は必要ありません。

 

さ、これでアナタも自動化の世界に足を踏み入れましたね(笑)。