ファイルを別のフォルダへ自動で移動する方法(Windows・Mac)
ファイルを別のフォルダへ自動で移動する3つの方法を比較しました。バッチスクリプト、Automatorのフォルダアクション、そして1件も取りこぼさないルール型アプリ。WindowsとMacそれぞれの設定手順を、実例つきで解説します。
ファイルを別のフォルダへ自動で移動する方法は三つあります。スケジュール実行のスクリプト、OSに備わったフォルダ自動化、そしてフォルダを監視して到着と同時に移動するルール型の整理アプリです。スクリプトは無料ですが壊れやすく、標準の自動化は無料ですが制約が多く、監視アプリは費用がかかりますが取りこぼしません。
この記事ではWindowsとMacの三つの方法を、実際に動く例、どこにも書かれていない失敗のしかた、そしてどれがあなたに合うかという率直な答えとともに解説します。
手作業の片づけが長続きしない理由
ファイルを移すことが難しいわけではありません。同じ判断が繰り返されることが問題なのです。請求書もスクリーンショットも書き出しファイルもインストーラーも同じフォルダに落ち、そのたびに同じ三秒の判断を求めてきます。一日に何度も、ずっとです。
これが最初に表れるのはダウンロードフォルダです。パソコン上のあらゆるアプリが既定でそこに書き込むからです。ブラウザ、メールソフト、チャットアプリ、制作ツール。これほど書き手が多く、持ち主がいないフォルダはほかにありません。
だからフォルダは膨らみます。日曜に片づけて満足しても、次の金曜にはまた九十個たまっています。あの片づけは本物の労働で、買えた時間は五日でした。
自動化はこの計算を変えます。判断を一度、十分かけて説明しておけば、あとは機械が繰り返します。以降ではその三つの方法と、それぞれの実際の代償を見ていきます。
ファイルを自動で移動する三つの方法とは
- 時計で動くスクリプト — 無料でどこでも使えますが、ファイルの到着ではなく時刻で動き、失敗しても黙っています。
- 標準のフォルダ自動化 — 無料で追加ソフトも不要ですが、制約が強く、とくにダウンロードでは当てになりません。
- ルール型の整理アプリ — フォルダを監視し、条件を判定し、ファイルを移動し、その内容を記録するアプリです。
並び順は品質ではなく手間の順です。スクリプトを書くのが好きなら上から、フォルダが自分の作業対象にならずに片づいてほしいなら下から始めてください。
方法1:Windowsのバッチファイルとタスクスケジューラ
Windowsには、ファイルが届くたびに移動する標準機能はありません。あるのは move コマンドと、それを繰り返し実行できるスケジューラです。
次の内容を move-pdfs.bat として保存し、二つのパスを書き換えます。
@echo off
set "SOURCE=C:\Users\YourName\Downloads"
set "DEST=C:\Users\YourName\Documents\PDF"
if not exist "%DEST%" mkdir "%DEST%"
move /Y "%SOURCE%\*.pdf" "%DEST%\"
続いてスケジュールを設定します。
- タスクスケジューラを開き、基本タスクの作成を選びます。
- 名前を付け、トリガーを毎日にして詳細設定を開きます。
- タスクを繰り返す間隔にチェックを入れ、5分か15分を選び、継続時間を無期限にします。
- 操作をプログラムの開始にして、
.batファイルを指定します。 - バックグラウンドで動かしたい場合は、全般タブでユーザーがログオンしているかどうかにかかわらず実行するにチェックを入れます。
これで動きます。その代わりに払うものがあります。
到着ではなく時計で動きます。 五分間隔なら、ファイルは最大五分間まちがった場所に置かれます。保管用なら問題ありませんが、これから開くファイルには向きません。
move /Y は黙って上書きします。 invoice.pdf を二度ダウンロードすると、二つ目が一つ目を消します。確認も出ず、ごみ箱にも入りません。/Y を外すともっと悪く、誰も押さないキーを待ってスクリプトが止まります。
失敗しても黙っています。 保存先のドライブが外れていたり、ファイルがほかのアプリで開かれていたりすると、move はすぐ閉じるコンソールにエラーを書きます。それでもタスクは成功と報告します。
条件が増えるたびにコードが増えます。 PDFを移すのは一行です。三十日を過ぎたPDFのうち名前に draft を含まないものだけを今年の年フォルダへ移すとなると、もう自分で保守する本格的なPowerShellスクリプトです。
すでにスクリプトを書いていて、目的が夜間の一括処理ならスクリプトが正解です。目的がダウンロードフォルダを片づいた状態に保つことなら不正解です。
方法2:MacのフォルダアクションとAutomator
macOSにはイベント駆動の本格的なフォルダ自動化が備わっています。Windowsにはない部分です。名前はフォルダアクションで、Automatorで作ります。
- Automatorを開き、新しいフォルダアクションを作成します。
- 上部のフォルダアクションは次のフォルダに追加された項目を受け取りますを、移動元のフォルダに設定します。
- Finder項目にフィルタを適用をドラッグし、条件を設定します。たとえばファイル拡張子がpdfとします。
- その下にFinder項目を移動をドラッグし、保存先を選びます。
- 名前を付けて保存します。これでそのフォルダに紐づきました。
そして動きません。理由を突き止めるのに一晩かかります。
ダウンロードは一時的な名前で届きます。 Safariはダウンロード中に .part ファイルを書き、Chromeは .crdownload を使います。フォルダアクションはその一時ファイルが現れた瞬間に起動し、フィルタは拡張子が違うと判断して除外します。ダウンロードが終わるとブラウザはその場でファイル名を変更しますが、名前の変更ではフォルダアクションは起動しません。結果としてPDFは移動されず、画面には理由を示すものが何もありません。Apple公式のサポートフォーラムで最も多いフォルダアクションの不満がこれです。
Finder項目のフィルタは当てになりません。 Apple Support CommunitiesやApple Developerフォーラムの長いスレッドには、条件が明らかに一致しているのにフィルタが何も通さない事例が並びます。よくある回避策はフィルタを外してAppleScriptのブロックで判定することですが、それはつまりAppleScriptを書くということです。
履歴も取り消しもありません。 誤ったファイルを移したフォルダアクションは、どこへ行ったのかをFinderで探す作業だけを残します。
一度に一つのフォルダだけです。 監視するフォルダごとにワークフローを作り、別々に保守する必要があります。
フォルダアクションは、ブラウザが関わらない単純なフォルダなら使う価値があります。スキャナの出力フォルダや、アプリが処理を終えたときだけ書き込む書き出しフォルダなどです。ダウンロードフォルダについては、.part の問題だけで候補から外れます。
方法3:WindowsとMacで使うルール型の整理アプリ
整理アプリは監視を肩代わりします。条件でファイルを説明して保存先を選べば、到着の検知、フォルダの作成、名前の衝突、記録はアプリが引き受けます。
File Arbor はWindowsとmacOSの両方でこの方式で動きます。ルールは条件の集まりと一つの動作でできています。
- 条件 — 拡張子、名前に含む、名前が始まる、名前が終わる、正規表現、これより大きい、これより小さい、これより古い、これより新しい、文書内のテキスト。一つのルールにAND条件で最大五つまで組み合わせられます。
- 動作 — 保存先へ移動(新しい名前を付けることも可能)、その場で名前を変更、ごみ箱へ送る、完全に削除、シェルコマンドの実行。
- きっかけ — 手動実行、フォルダを監視して到着と同時に処理する自動モード、または曜日と時刻を指定したスケジュール実行。
前の二つの方法と比べると、三つの違いが効いてきます。
保存先が自分で組み上がります。 固定のパスの代わりにトークンを書けます。書類/<Year>/<MonthName> と書けば 書類/2026/9月 が作られてそこに整理され、翌月には自動で新しいフォルダに切り替わります。写真用のトークンはさらに進んでEXIFデータを読み、<Camera> と <ExifYear> を使えばメモリーカードから取り込んだ写真が撮影機材ごとに分かれます。詳しくは年と月のフォルダにファイルを整理する方法で扱っています。
うっかり上書きすることがありません。 名前が衝突したときの既定の動作は、既存のファイルを置き換えるのではなく、届いたファイルの名前を変えることです。上書きやスキップにも変更できますが、自分で選ぶ必要があります。
すべての移動が記録され、元に戻せます。 履歴ページにはファイル、保存先、実行されたルール、時刻が並び、移動は取り消せます。スクリプトにもフォルダアクションにも答えのない部分がここで、自動移動を任せられるものにしているのもこれです。理由は履歴が残るファイル整理アプリに書きました。
無料プランには監視フォルダ1つ、ルール2つ、ファイル種別による判定、1日20ファイルの整理が含まれます。実際のフォルダでしっかり試すには十分です。自動モード、スケジュール実行、正規表現、サブフォルダの走査、無制限のルールはProに含まれ、生涯アップデート付きの $24.99 買い切りです。詳細は料金ページにあります。
足りない点: File Arborが扱うのは名前、拡張子、サイズ、日付です(写真のカメラと撮影日は保存先のフォルダ名に使えますが、条件にはなりません)。ProではPDF、DOCX、テキストファイルに対する内容条件も加わります。1.3.0以降は、スキャンしたPDFや写真もOCRで読み取れますが、読み取るのは最初と最後のページだけです。暗号化されたPDFはまったく読み取れません。請求書に印字された顧客名でファイルを振り分けるために単語リスト変数が必要な場合、Windowsでそれを備えているのは File Juggler で、価格は $50 です。
どの方法を選ぶべきか
「意識しなくてもダウンロードフォルダが片づいていてほしい」 整理アプリです。スクリプトは時計のせいで、フォルダアクションは .part ファイルのせいで、この用途を最も苦手としています。
「もともとPowerShellを書いていて、これは夜間の保管処理だ」 スクリプトを書いてください。二十分で仕上がり、何年も動き続けます。
「Macのフォルダを一つ片づけたいだけで、そこにダウンロードは来ない」 フォルダアクションで足ります。無料でOSに付属し、ブラウザが絡まなければしっかり働きます。
「ルールが文書の中身に左右される」 内容ルールを使ってください。WindowsでもMacでもFile Arbor Pro(1.3.0以降はスキャンも対象)、WindowsならFile Juggler、MacならSpotlight条件を使った Hazel です。名前しか見ないツールにはできませんし、できるふりをすべきでもありません。
「職場はWindows、自宅はMac」 両方で動く整理アプリを選んでください。スクリプトもフォルダアクションもプラットフォームをまたげないので、二つの仕組みを維持することになります。
まず自動化する価値のある五つ
一つ選んでください。確かめたことのない五つのルールより、きちんと動く一つのルールです。
- インストーラーをダウンロードフォルダの外へ。
.exe、.msi、.dmg、.pkgを条件にしてインストーラーフォルダへ移します。三十日を過ぎたら削除する二つ目のルールも添えておきましょう。 - スクリーンショットをデスクトップの外へ。 名前が
Screenshotまたはスクリーンショットで始まるものをピクチャ/スクリーンショット/<Year>-<Month>へ移します。 - 請求書を日付フォルダへ。 名前に
invoiceを含み、かつ拡張子がpdf、保存先は書類/請求書/<Year>。 - カメラの取り込みを撮影日ごとに。
.jpg、.cr2、.nef、.arwを条件にし、保存先はピクチャ/<ExifYear>/<ExifDate:yyyy-mm-dd>。 - 大きな動画ファイルをシステムドライブの外へ。 拡張子が
mp4かつ 500 MB 超、保存先は外付けまたは二台目のドライブ。
あとから壊れないようにするには
保存先は監視フォルダの外に置いてください。 ダウンロード をサブフォルダ走査ありで監視しながら保存先を ダウンロード/PDF にすると、次の実行で同じファイルをまた見つけてしまいます。
ルールは具体的なものから一般的なものへ並べてください。 すべての .pdf を拾うルールを請求書ルールの上に置くと、請求書ルールは二度と実行されません。
まだ書き込み中のファイルに注意してください。 大きなダウンロード、動画の書き出し、データベースのダンプは数分間ふくらみ続けます。「1分より古い」という条件を足すか、アプリが処理を終えたときだけ書き込むフォルダを監視してください。
一週間後に記録を見てください。 フォルダではなく記録です。フォルダは今ファイルがどこにあるかを教えますが、記録はどのルールがそこへ送ったのか、そしてそれが意図したルールだったのかを教えてくれます。
まとめ
自分で管理しているパソコンでの夜間の保管処理なら、スクリプトを書いてください。Macの静かなフォルダ一つなら、フォルダアクションが費用なしで片づけてくれます。しかし実際に散らかりを生み出すフォルダ、つまり毎日使うパソコンのダウンロードフォルダについては、到着と同時に動き、決して上書きせず、取り消せる記録を残す監視アプリだけが、片づいた状態を保ち続けます。
File Arborをダウンロードして、まずは一つのフォルダにルールを作ってみてください。全体の流れを最初から見たい場合はダウンロードフォルダを自動整理する方法から始めるとよいでしょう。
