0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Windows Spotlightの壁紙を保存する

Last updated at Posted at 2025-09-23

Windows Spotlightの壁紙を保存する

割と良い感じの壁紙が多いので、スクリプトでローカルに保存してみた。ショートカットでも作っておいて、壁紙が良いと思ったら実行すれば幸せになれます。たぶん。

やりたいこと(冒頭ほぼそのまま)

  • Windows Spotlightの壁紙を保存したい
  • 同じ壁紙は同じファイル名にしたい
  • 任意のフォルダに保存したい
  • Windows10/11の標準のコマンドでかつbatファイルで書きたい

といことで、実装。

コードの詳細は大した事ないのでコメント見てください。以下、仕様です。

  • desktop_wallpaperのフォルダに壁紙を保存します
  • ファイルのMD5値を取得してファイル名にすることで、同じ壁紙は同じファイル名になります
  • 最後に保存した壁紙をexplorerで開きます ※特大アイコン・作成日順にすると良い感じかも
@echo off
rem 一時作業フォルダ
set temp_wallpaper=%TMP%\copyWallpaper
rem 壁紙保管用フォルダ
set desktop_wallpaper=%USERPROFILE%\Pictures\wallpaper\windows_spotlight

rem 一時作業・壁紙保管用フォルダの作成
mkdir %temp_wallpaper% 2> NUL
mkdir %desktop_wallpaper% 2> NUL

rem 壁紙ファイルをそのMD5値をファイル名として一時フォルダにコピー
for /f "tokens=3 delims= " %%a in ('reg query "HKCU\Control Panel\Desktop" /v WallPaper') do (
  for /f "tokens=1 delims= " %%h in ('certutil -hashfile %%a MD5') do (
    copy /Y %%a %temp_wallpaper%\%%h.jpg >NUL 2>&1
  )
)
rem 実装がヘボくてできてしまうゴミを削除(無念)
del %temp_wallpaper%\MD5.jpg

rem 一時フォルダに保存した壁紙ファイルを保管用フォルダにコピーして開く
for /f "tokens=1 delims= " %%a in ('dir /b %temp_wallpaper%') do (
  xcopy /Y %temp_wallpaper%\%%a %desktop_wallpaper% >NUL 2>&1
  explorer /select,%desktop_wallpaper%\%%~nxa

  rem 一時フォルダの壁紙ファイルを削除
  del /f %temp_wallpaper%\%%a
)

イケてないところ

  • temp_wallpaerの一時フォルダは特に削除しないため、気になる人は最後のdelコマンドの行を一時フォルダを削除するように変更してね
  • forにforを重ねてるあたりが美しくないけれども、私にはこれが限界でした
  • certutilコマンドまたはbatファイルでの標準出力の絞り方がわからず、ゴミ(MD5.jpg)ができてしまう、けれども仕様です
  • 多分Windows Spotlight以外だとうまく動かないと思います#拡張子が被る(.jpg.jpg的になる)くらいな気がするけれども

最後に

特に危ないことはしていないので(あえて言えばdelコマンド2か所)、Windowsが壊れるとかはないと思います。が、このスクリプトを利用したことで発生した損害・トラブル・不利益についてはご容赦ください。

それでは。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?