作成日順にファイルを自動的にフォルダに整理する

PowerShell を使用して、Windows の作成日に基づいてファイルをフォルダーに分類します。以下のスクリプトは、ファイルを の下に年-月のフォルダーにグループ化し_ByCreationDate、初回実行時にはファイルの場所を変更する前に、予定されている移動内容をプレビューします。このスクリプトは、フォルダー内のファイルのみを処理し、既存のサブフォルダーはそのまま残します。

これにより、従来の SubDiv ワークフローが Windows の組み込み PowerShell コマンドに置き換えられます。特に重要なファイルの場合は、まずバックアップを作成するか、コピーしたテストフォルダで手順を試してください。

「作成日」の意味

PowerShell では、ファイルシステムの作成タイムスタンプが として公開されますCreationTime。これはLastWriteTime、ファイルの内容が最後に変更された日時を記録する とは異なります。Microsoft は、ファイルシステムによってタイムスタンプの記録方法が異なる場合があり、一部のプラットフォームでは正確な作成時刻がサポートされていないことを指摘しています。これは、ファイルの内容が最初に作成された日時の証明ではなく、ファイルが保存されている場所について Windows が報告する日付として扱ってください。日付が埋め込まれている写真やドキュメントについては、そのメタデータを別途確認してください。

プロパティCreationTimeとWindows ファイルのタイムスタンプについては、 Microsoft のドキュメントを参照してください。

PowerShellを使用してファイルを日付フォルダに並べ替える

1. フォルダを選択し、その内容を確認します。

整理したいファイルが入っているフォルダ(例えば、この作業用に作成したステージングフォルダなど)を選択してください。ファイルエクスプローラーで詳細表示に切り替え、「作成日」列を確認して、使用するタイムスタンプを確認してください。可能であれば、対象フォルダを同じドライブ上に置き、ファイルへの書き込みを行っている可能性のあるプログラムはすべて閉じてください。

Windowsファイルエクスプローラーに、作成日列が表示された状態で、ソートされていないサンプルファイルを表示している。
並べ替えを行う前に、詳細ビューで作成日の値を確認してください。

このスクリプトは、_ByCreationDate選択したフォルダ内にファイルを作成します。既存のサブフォルダには移動しません。デフォルトでは、Get-ChildItem隠しファイルも除外されます。この例では、より安全なデフォルト設定を維持しています。

2. PowerShellが読み取る日付を確認します

WindowsターミナルまたはPowerShellを開き、サンプルパスを実際のフォルダパスに置き換えてください。この読み取り専用コマンドは、各直接ファイルとその作成タイムスタンプを一覧表示します。

Get-ChildItem -LiteralPath 'C:\Path\To\Your\Folder' -File |
  Sort-Object CreationTime |
  Select-Object Name, CreationTime

ファイルエクスプローラーで既知のファイルをいくつか確認してください。Microsoft のドキュメントにGet-ChildItemは、ディレクトリの内容を取得するためのコマンドレットとして記載されています。その-Fileパラメーターによって結果がファイルに絞り込まれます。

PowerShellで、サンプルファイル名と作成日時を並べて表示する。
フォルダ構造を選択する前に、作成日を確認してください。

3. ソートスクリプトをソースフォルダの外に保存します。

以下の内容を、SortByCreatedDate.ps1ソート対象のフォルダとは別の場所(例:)に保存してくださいC:\Scripts。スクリプトを別の場所に保存することで、ファイルと一緒に移動されるのを防ぎます。$source実際のフォルダパスに変更してください。

$source = 'C:\Path\To\Your\Folder'
$destinationRoot = Join-Path $source '_ByCreationDate'
$files = Get-ChildItem -LiteralPath $source -File

foreach ($file in $files) {
    $month = $file.CreationTime.ToString('yyyy-MM')
    $targetFolder = Join-Path $destinationRoot $month
    New-Item -ItemType Directory -Path $targetFolder -Force | Out-Null
    Move-Item -LiteralPath $file.FullName -Destination $targetFolder -WhatIf
}

各ファイルは、などのフォルダーに割り当てられます_ByCreationDate‚5-03。このNew-Item行は、必要に応じて宛先の月フォルダーを作成します。Move-Itemは移動を実行します。その-WhatIfスイッチは、ファイルを移動せずにアクションを説明するように PowerShell に要求します。

4. プレビューしてから、動きを適用する

保存したスクリプトをPowerShellから実行します。例:

& 'C:\Scripts\SortByCreatedDate.ps1'

プレビューパスをよく読んでください。このスクリプトはプレビュー中に空の宛先フォルダを作成しますが、-WhatIfソースファイルはそのまま残します。提案されたフォルダが正しい場合は、-WhatIf該当Move-Item行を削除し、スクリプトを保存して再度実行してください。その後、ファイルエクスプローラーでいくつかのファイルを確認してください。

PowerShell で、_ByCreationDate の下の年月フォルダーにファイルが配置される場合の WhatIf プレビューを表示します。
参考プレビュー:移動を適用する前に、各ソースパスと宛先パスを確認してください。
ファイルエクスプローラーに、_ByCreationDate 月ごとのフォルダーに整理されたサンプルファイルが表示されています。
スクリプトによって生成される年月フォルダ構造の例。

ソートを繰り返し、一般的な問題に対処する

これはバッチ処理ツールです。フォルダを継続的に監視するのではなく、実行するたびにファイルを整理します。定期的なクリーンアップを行うには、スクリプトをソースフォルダの外に置き、Windowsタスクスケジューラを使用してスケジュールに基づいて実行してください。-WhatIf計画されたパスを確認するまではそのままにしておき、スケジュール実行でファイルを移動する準備ができた時点で削除してください。

  • 同名のファイル: PowerShell は、宛先の月に同じ名前のファイルが既に存在する場合、競合を報告します。このスクリプトは-Forceファイルを上書きしません。重複を解決するか、再試行する前に新しい宛先を選択してください。
  • サブフォルダは変更されません。このスクリプトには意図的に切り替えスイッチがありません-Recurse。重複する名前の処理方法と各フォルダの元の構造の保持方法を決定してから、再帰的なソートを追加してください。
  • 日付が予期しないように見える場合:ファイルの「作成日」フィールドと保存デバイスを確認してください。ファイルシステムのタイムスタンプのサポートと精度は異なるため、ネットワーク共有、外付けドライブ、復元、または同期ワークフローでは、日付が異なる場合があります。

関連する Microsoft の参照資料は、そのパラメーターを含むMove-Itemドキュメント-WhatIfとGet-ChildItemドキュメントです。

コメントを残す

FotoSketcherで写真を絵画、スケッチ、漫画に変換

FotoSketcherで写真を絵画、スケッチ、漫画に変換

FotoSketcher Studioを使えば、写真を絵画、鉛筆画、漫画に変換できます。エフェクトの選択方法、プレビューの調整方法、作品の保存方法を学びましょう。

オーディオ識別ツールで音声ファイルを詳細に分析・識別する

オーディオ識別ツールで音声ファイルを詳細に分析・識別する

オーディオ識別子がビットレート、エンコーダー、タグについて何を明らかにするのか、従来のワークフローがどのように機能するのか、そして現在利用可能なツールの中で、ファイルの検査や楽曲の識別に使えるものはどれなのかを学びましょう。

My Photo Index:Windows用オープンソース写真整理ツール

My Photo Index:Windows用オープンソース写真整理ツール

My Photo Indexは、ローカル画像のタグ付け、評価、閲覧を行うための、Windows向けの旧来の写真カタログツールです。その機能、互換性の制限、および現在もサポートされている代替ツールについてご確認ください。

Attribute Changerを使用してファイルとフォルダの属性、日付、時刻を変更する

Attribute Changerを使用してファイルとフォルダの属性、日付、時刻を変更する

Attribute Changerを使用して、Windowsファイルの属性とタイムスタンプを編集したり、JPEG EXIF写真の日付を更新したり、バッチ変更を安全にプレビューしたりする方法を学びましょう。

Windows 10で各モニターに異なる壁紙を設定する方法

Windows 10で各モニターに異なる壁紙を設定する方法

Windows 10の各モニターに個別の壁紙を設定し、ディスプレイを識別し、画像のフィットを調整し、モニターの選択肢が見つからない場合のトラブルシューティングを行います。

pViewer:最小限の画像ビューアとマンガ&コミックリーダー

pViewer:最小限の画像ビューアとマンガ&コミックリーダー

pViewerの機能、写真モードとコミックモードの仕組み、ダウンロードすべきWindows版、そして旧バージョンと改訂版の違いについて学びましょう。

NeoDownloader:パラメータ設定とウェブサイトからの画像の一括ダウンロード

NeoDownloader:パラメータ設定とウェブサイトからの画像の一括ダウンロード

NeoDownloaderプロジェクトの作成方法、クロール範囲の選択方法、画像フィルタと保存先の設定方法、バッチダウンロードの確認方法を学びましょう。

Windows 7および8でホットキーを使って次のデスクトップ背景に切り替える方法

Windows 7および8でホットキーを使って次のデスクトップ背景に切り替える方法

Windows 7または8用のスライドショーを設定し、簡単なVBScriptショートカットを作成して、キーボードショートカットキーを割り当てて次の壁紙に進めるようにします。

XnConvert:エフェクトの適用と画像フォーマットの一括変換

XnConvert:エフェクトの適用と画像フォーマットの一括変換

XnConvertを使えば、エフェクトの適用、写真のリサイズ、画像フォーマットの一括変換が可能です。出力設定の選択、編集内容のプレビュー、オリジナル画像の保護も行えます。

PickMeApp: 保存された設定でWindowsプログラムを転送する

PickMeApp: 保存された設定でWindowsプログラムを転送する

PickMeAppを使って、インストール済みのWindowsアプリケーションを別のPCに移行しましょう。TAPパッケージの仕組み、設定の取得方法、転送できない可能性のある項目について学びます。