Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

PrefixDate

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 に標準で入っています)

入れ方

  1. このリポジトリを ZIP でダウンロードして展開する(またはクローンする)
  2. install_PrefixDate.bat をダブルクリック

黒い窓に進み具合が出て、最後に一時フォルダでの動作確認結果が出ます。同じ内容が log\install_日時.log に残ります。

install がやっていること:

  1. PrefixDate.cs を Windows 標準の .NET Framework のコンパイラで PrefixDate.exe にする
  2. 変更前のレジストリ 3 か所を backup\日時_*.reg に保存
  3. exe を %LOCALAPPDATA%\Programs\PrefixDate\PrefixDate.exe に置く(ソースも同梱)
  4. レジストリに右クリック項目を登録。使った .reg は register_PrefixDate_日時.reg として残す
    • HKCU\Software\Classes\*\shell\PrefixDate … ファイル用
    • HKCU\Software\Classes\Directory\shell\PrefixDate … フォルダ用
  5. Windows 11 の場合、旧メニューを既定にするか聞く(下記)
  6. 一時フォルダにテスト用のファイル・フォルダを作って実際に付け替え、期待どおりか確認して消す
  7. install-state.json に「何をしたか」を残す(uninstall が読む)

戻し方

uninstall_PrefixDate.bat をダブルクリック。右クリック項目のレジストリキーと exe を消します。 旧メニュー既定の設定は、install が追加した場合だけ「戻すか」聞きます。元からあったものは触りません。

部分的に戻したいとき(どれもダブルクリックで実行できます):

ファイル 何をするか
unregister_PrefixDate.reg 右クリック項目だけ消す
classicmenu_off.reg Windows 11 標準の短いメニューに戻す
classicmenu_on.reg 旧メニューを既定にする(Windows の更新で外れたときの再適用にも)

Windows 11 の右クリックメニューについて

  • レジストリで登録した項目は、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.

参考にしたもの

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages