MENU

大量の写真をバッチファイルで年月ごとにフォルダを作って格納する

皆さんはデジカメやスマホで撮影した写真をどこに保存していますか?

私はデジカメで撮った写真はすべてPCに保存していますが、ここで一つ悩みがあります。

大量の写真を一つのフォルダーに入れてしまうと、写真の管理がしづらいことです。

例えば「2019年の11月に撮った写真を見返したい」といったときに、数が多すぎて探すのが大変なことがあります。

撮影した写真の「年」と「月」ごとにフォルダーを作って、写真を格納していけば綺麗に整理はできますが、手作業でやろうと思うと面倒くさい。。。

そこで今回はWindowsユーザーなら誰でも使えるバッチファイルを用いて、ドラッグ&ドロップだけでまとめてフォルダを作って写真を格納してみました。

目次

バッチファイルの準備

それではバッチファイルの作成工程を説明します。

  • Windowsのメモ帳を開く
  • 以下のコマンドをすべてコピーする
  • メモ帳にペーストする
  • メモ帳を保存する際に拡張子は「.bat」に、
    文字コードは「ANSI」を選択して保存する(ファイル名は何でも良い)

↓コピペするコマンド

@echo off
setlocal enabledelayedexpansion

if "%~1"=="" (echo バッチファイルにドラッグ&ドロップしてください。)

rem ドラッグ&ドロップしたファイルを1つずつ処理
for %%i in (%*) do (
    for /f %%a in ('dir /TW ^| findstr "%%~nxi"') do (
        set datetime=%%a
    )

    rem 日時を年と月に分割
    set y=!datetime:~0,4!
    set m=!datetime:~5,2!
    set d=!datetime:~8,2!

    rem フォルダー名を作成
    set ex_dir=%%~dpi!y!\!m!

    rem 保存先フォルダが存在しなければ作成
    if not exist "!ex_dir!" (md "!ex_dir!")

    echo 移動元: %%~i
    echo 移動先: !ex_dir!\%%~nxi

    rem ファイルを作成したフォルダに移動
    move /-y "%%~i" "!ex_dir!"

    echo;
)
endlocal
pause

↓拡張子は「.bat」、文字コードは「ANSI」を選択して保存する

これでバッチファイルが作成できました!

実際に使ってみる

試しに、これらの写真を整理してみたいと思います。

写真は「Pexels」さんからお借りしました。

これらの写真を先ほど作ったバッチファイルにドラッグ&ドロップします。

すると自動で「年」と「月」のフォルダーを作成して、そのフォルダーの中に写真が格納されます。

「2024」のフォルダーを開くと4月と7月のフォルダーが作られ、その中に写真が格納されています。

これで、大量の写真でもすぐに目的の写真に辿り着けるようになりました!

ちなみにこのバッチファイルは写真以外のファイル(エクセルやPDFなど)でも機能しますので、大量のファイルを整理したいときにご活用ください。

日付の参照を更新日以外にしたい場合

このバッチファイルでは画像ファイルの「更新日時」を参照していますが、8行目を少し変更すると「作成日時」や「アクセス日時」から参照することもできます。

[作成日時を参照する場合]
for /f %%a in (‘dir /TC ^| findstr “%%~nxi”‘) do (

[更新日時を参照する場合]
for /f %%a in (‘dir /TW ^| findstr “%%~nxi”‘) do (

[アクセス日時を参照する場合]
for /f %%a in (‘dir /TA ^| findstr “%%~nxi”‘) do (

目次