フォルダー内のファイルを変更日時順に目視確認するなら、コマンドプロンプトで dir /A:-D /T:W /O:D "対象パス" を実行します。古い順は /O:D、新しい順は /O:-D です。/A:-D はディレクトリを除外し、/T:W は最終書き込み日時を表示・並べ替えの基準にします。空白を含むパスは必ず引用符で囲みます。dir の結果は人が読む表示であり、後続プログラムが安定して解析するデータ形式ではありません。 確認ポイント:/T:Wは表示timestamp、/O:Dは並び方向を選ぶため、両方を実行記録へ残します。
dir /T:Wと/O:Dで更新日時順を切り替える
次の例では C:\Data\Monthly Reports の直下にあるファイルだけを対象にします。カレントディレクトリへ移動する必要はありません。パスを明記すると、別のフォルダーで同名ファイルを誤って調べる事故を避けられます。ワイルドカードを付けない場合も、引用符はパス全体を囲みます。
古いファイルから順に表示
dir /A:-D /T:W /O:D "C:\Data\Monthly Reports"
/O:D の D は日付順、符号なしは昇順です。ファイル名ではなく、選択した日時列の古い値から並びます。ディレクトリ行を混ぜないため、属性指定 /A:-D を同時に使います。
新しいファイルから順に表示
dir /A:-D /T:W /O:-D "C:\Data\Monthly Reports"
/O:-D の先頭のマイナスが降順を表します。/A:-D にあるマイナスは「Directory 属性ではないもの」という別の意味です。同じ -D に見えても、/O: と /A: のどちらに続くかで役割が変わります。
表示例を読み取る
C:\Data\Monthly Reports のディレクトリ
2026/07/14 09:05 8,421 april.csv
2026/07/16 18:42 12,908 june final.csv
2026/07/17 07:31 9,117 summary.txt
3 個のファイル 30,446 バイト
日本語ロケールの一例では日付が年/月/日で表示されますが、Windows の地域設定によって月/日/年などに変わり、時刻が12時間表記になる場合もあります。列位置や日付文字列を固定長として切り出す処理は壊れやすいため、一覧は画面表示・一時的な確認用と考えます。またヘッダー、合計、桁区切り、ドライブ情報もロケールに依存します。
/T:C、/T:A、/T:Wを区別する
/T:C:作成日時(Creation time)を表示し、その日時で並べ替える。/T:A:最終アクセス日時(Last access time)を表示し、その日時で並べ替える。/T:W:最終書き込み日時(Last write time)を表示し、その日時で並べ替える。変更日時順の記事ではこれを使う。
/T を省略したときにどの列が使われるかを曖昧にせず、変更日時を調べるコマンドには明示的に /T:W を付けます。最終アクセス日時は、ファイルを読んだ直後に常に更新されるとは限りません。作成日時も、コピー、展開、復元などで元データの履歴と異なることがあります。どの時刻も「誰が内容を変更したか」を証明する監査情報ではありません。
拡張子とサブフォルダーを絞る
ログだけを対象にする場合はパス末尾へパターンを付けます。サブフォルダーも必要なときだけ /S を追加します。再帰表示はフォルダーごとに見出しと集計が入り、全ファイルが一つの表として完全に時系列整列されるわけではありません。ツリー全体の単一ランキングが必要なら、後述の PowerShell 照合を使います。
dir /A:-D /T:W /O:-D "C:\Data\Monthly Reports\*.log"
dir /A:-D /T:W /O:-D /S "C:\Data\Monthly Reports\*.log"
一致するファイルがなければ「ファイルが見つかりません」と表示されます。パスが存在しない場合は「指定されたパスが見つかりません」、アクセスできない場所では「アクセスが拒否されました」となります。0件、パス誤り、権限不足を同じ扱いにせず、まず引用符、ドライブ文字、フォルダー名、検索パターンを確認します。/B は名前だけの表示になるので、日時を確認する用途では付けません。
1ファイルの時刻で並びを検証する
一覧の先頭または末尾にあるファイルを一つ選び、対話型のコマンドプロンプトで次を実行します。%~tI は対象ファイルの日時を表示します。バッチファイルに書く場合だけパーセントを %%I にします。ファイル名に空白があっても in ("...") と引用すれば一つのパスとして扱われます。
for %I in ("C:\Data\Monthly Reports\june final.csv") do @echo %~tI %~fI
期待例は 2026/07/16 18:42 C:\Data\Monthly Reports\june final.csv のようになります。dir の同じファイル行と日時が一致し、/O:D では前後の行が非減少、/O:-D では非増加なら並びを確認できます。同じ分に複数ファイルがある場合、表示精度だけでは内部の秒以下を判別できず、同順位内の順番を厳密に保証する材料にはできません。
機械処理が必要な場合のPowerShell照合
以下は cmd の代替を必須にする手順ではなく、ロケール依存の dir 文字列を解析せず、日時を DateTime オブジェクトとして照合したい場合だけ使うクロスチェックです。-LiteralPath は角括弧などをワイルドカードとして解釈しません。-File でファイルに限定し、Sort-Object LastWriteTime でツリー直下を単一の順序にできます。
powershell -NoProfile -Command "Get-ChildItem -LiteralPath 'C:\Data\Monthly Reports' -File | Sort-Object LastWriteTime | Select-Object FullName,LastWriteTime,Length"
新しい順なら Sort-Object LastWriteTime -Descending にします。cmd から PowerShell を呼ぶ例では外側が二重引用符、PowerShell のパスが単一引用符です。パスに単一引用符が含まれる特殊な場合は、そのまま流用せず PowerShell 側でリテラル表現を調整してください。dir と PowerShell の件数が違う場合は、隠しファイル、検索パターン、再帰の有無、アクセスエラーの差を照合します。
変更とロールバックが発生する条件
ここまでの dir、for、Get-ChildItem、Sort-Object は表示だけで、元ファイルを変更しません。そのため通常はロールバック対象がありません。ただし > list.txt で結果を保存すると list.txt の新規作成または上書きが発生します。保存するなら検索対象外の専用フォルダーへ新しい名前で出力し、不要ならその一覧ファイルだけを削除します。日時順の表示結果を根拠に、削除や移動を同じコマンドへ連結しないでください。
件数が多い場合は、先頭と末尾だけで判断せず、同じ条件で再実行して件数と境界の日時が一致するか確認します。処理中に新しいファイルが作成・更新されるフォルダーでは一覧が変動するため、確認時刻と対象範囲も記録してください。
更新日時順を確定する六項目
- 対象パスが引用され、意図したフォルダーを指している。
- ファイルのみなら
/A:-D、変更日時なら/T:Wがある。 - 古い順は
/O:D、新しい順は/O:-Dになっている。 - 日付の見た目を機械解析せず、必要ならオブジェクト型の別手段で照合した。
- 0件、パス不明、アクセス拒否を区別し、エラーを完全な一覧と誤認していない。

コメント