Windows のエクスプローラーで右クリック →「今日の日付を頭に付ける (YYMMDD_)」を選ぶと、
ファイル名やフォルダ名の先頭に今日の日付が付きます。図面.pdf → 260911_図面.pdf
English summary — Adds a context-menu item to Windows Explorer that prepends today's date
(YYMMDD_) to the selected file or folder name. If the name already starts with six digits and
an underscore, those digits are replaced with today's date. No third-party dependencies: the tiny
C# program is compiled on your machine by the bundled PowerShell script using the .NET Framework
compiler that ships with Windows, and registered under HKCU (no admin rights needed).
Run install_PrefixDate.bat to install, uninstall_PrefixDate.bat to remove.
On Windows 11 the item appears in the classic menu ("Show more options"); the installer can
optionally make the classic menu the default.
| 前 | 後(2026-09-11 に実行した場合) |
|---|---|
図面.pdf |
260911_図面.pdf |
250101_図面.pdf |
260911_図面.pdf(先頭の 6 桁を今日に置き換え) |
260911_図面.pdf |
変わらない(すでに今日の日付) |
写真(フォルダ) |
260911_写真 |
- 複数選択しても効きます(Windows がファイルごとに 1 回ずつ実行します)
- 追加ソフトは不要。管理者権限も不要(ユーザーのレジストリと
%LOCALAPPDATA%しか触りません)
- Windows 11(Home 25H2 で動作確認)。Windows 10 でも動くはずですが未確認です
- Windows PowerShell 5.1 と .NET Framework 4.x(どちらも Windows に標準で入っています)
- このリポジトリを ZIP でダウンロードして展開する(またはクローンする)
install_PrefixDate.batをダブルクリック
黒い窓に進み具合が出て、最後に一時フォルダでの動作確認結果が出ます。同じ内容が log\install_日時.log に残ります。
install がやっていること:
PrefixDate.csを Windows 標準の .NET Framework のコンパイラでPrefixDate.exeにする- 変更前のレジストリ 3 か所を
backup\日時_*.regに保存 - exe を
%LOCALAPPDATA%\Programs\PrefixDate\PrefixDate.exeに置く(ソースも同梱) - レジストリに右クリック項目を登録。使った .reg は
register_PrefixDate_日時.regとして残すHKCU\Software\Classes\*\shell\PrefixDate… ファイル用HKCU\Software\Classes\Directory\shell\PrefixDate… フォルダ用
- Windows 11 の場合、旧メニューを既定にするか聞く(下記)
- 一時フォルダにテスト用のファイル・フォルダを作って実際に付け替え、期待どおりか確認して消す
install-state.jsonに「何をしたか」を残す(uninstall が読む)
uninstall_PrefixDate.bat をダブルクリック。右クリック項目のレジストリキーと exe を消します。
旧メニュー既定の設定は、install が追加した場合だけ「戻すか」聞きます。元からあったものは触りません。
部分的に戻したいとき(どれもダブルクリックで実行できます):
| ファイル | 何をするか |
|---|---|
unregister_PrefixDate.reg |
右クリック項目だけ消す |
classicmenu_off.reg |
Windows 11 標準の短いメニューに戻す |
classicmenu_on.reg |
旧メニューを既定にする(Windows の更新で外れたときの再適用にも) |
- レジストリで登録した項目は、Windows 11 では右クリック直後の短いメニューには出ず、 「その他のオプションを表示」(Shift+右クリック)の先の旧メニューに出ます。これは Windows の仕様です
- 旧メニューを既定にするには
HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32を空の既定値で作ります。install が「設定しますか?」と聞くので、y で設定されます(既定は N)。 25H2 でも効きますが、累積更新や機能更新で解除されることがあります。外れたらclassicmenu_on.regを実行してください - PowerToys の PowerRename にも日付変数
$YY$MM$DDがありますが、Microsoft の説明では 「ファイルの作成日時」が入る仕様で、今日の日付ではありません。用途が違います
- 本体は 100 行ほどの C#(
PrefixDate.cs、C# 5 の文法)。コンソール窓が一瞬出ないよう Windows アプリ形式でコンパイルします - 先頭が
^\d{6}_にマッチすればその 6 桁を今日の日付に置き換え、しなければYYMMDD_を前に付けます - 同じ名前がすでにある・ファイルが使用中・ドライブのルート、の場合はメッセージを出して変更しません
- ソースは exe と一緒に
%LOCALAPPDATA%\Programs\PrefixDate\に置かれるので、何が動いているか後から確認できます
- 元に戻す操作(Ctrl+Z)は効きません。付け間違えたら手で直してください
- 一度に選べるのは 15 個まで(16 個以上選ぶと Windows が項目を出しません。Windows 側の既定値です)
- 「先頭が 6 桁の数字 +
_」だけを既存の日付とみなします。20250101_のような 8 桁や250101 名前(スペース区切り)は日付とみなさず、そのまま前に260911_が付きます - 日付の形式(
yyMMdd)と区切り(_)を変えたいときはPrefixDate.csのToString("yyMMdd")と"_"を書き換えて install を実行し直してください
| ファイル | 役割 |
|---|---|
install_PrefixDate.bat / .ps1 |
登録(バックアップ・コンパイル・登録・動作確認・記録) |
uninstall_PrefixDate.bat / .ps1 |
削除 |
PrefixDate.cs |
本体のソース。install がコンパイルする |
unregister_PrefixDate.reg |
右クリック項目だけ消す |
classicmenu_on.reg / classicmenu_off.reg |
旧メニュー既定のオン/オフ |
install を実行すると、同じフォルダに log\、backup\、register_PrefixDate_日時.reg、install-state.json ができます
(.gitignore 済み。ユーザー名入りのパスやレジストリの書き出しを含むので、公開しないでください)。
MIT License — see LICENSE.
- PowerRename utility – Microsoft Learn(日付変数はファイル作成日時)
- 4 Ways to Get the Old Context Menus Back in Windows 11 25H2 – TechYorker(25H2 での動作と、更新で外れる注意)
- How to bypass the new context menu – Microsoft Q&A(同じレジストリ手順)