技術とか戦略とか

IT技術者が技術や戦略について書くブログです。

エクスプローラ上でフォルダを任意の順番で並べる(レジストリ変更無し・フリーソフト未使用)

エクスプローラ上でフォルダを任意の順番で並べたい場合、多くの場合は「00_…」「01_…」のような形で番号を割り振り、名前で並び替えると思います。
しかし、フォルダに番号を振らずに作業を進め、既に数多くのリンクが貼られてしまったような状況では、番号を振り直すのが難しくなります。
レジストリ変更やフリーソフトで対処することもできるそうなのですが、現場のポリシー次第では、セキュリティ等の問題でレジストリを自由に変更したりフリーソフトを自由に入れたりできないこともあります。
 
この場合、更新日時を任意の順番にし、更新日時で並び替えるようにすると良いです。
更新日時を任意の順番にするには、Windows PowerShell を使って自動的で更新日時を更新できるようにすると良いです。
(更新日時が更新されてしまった場合は Windows PowerShellスクリプトを実行することで更新日時を元に戻す必要は出てきてしまいますが、ワンクリックで済むのでそこまで面倒ではないと思います)
 
例えば、以下のようなフォルダ構成になっていて、「hoge」→「fuga」→「piyo」の名前に並び替えたい場合
f:id:akira2kun:20200103163545j:plain

以下のようなバッチを用意して実行します。
 
・FolderSort.bat
powershell -ExecutionPolicy RemoteSigned -File .\FolderSort.ps1
 
・FolderSort.ps1
Set-ItemProperty .\hoge -Name LastWriteTime -Value "2019/12/24 00:00:00"
Set-ItemProperty .\fuga -Name LastWriteTime -Value "2019/12/24 00:01:00"
Set-ItemProperty .\piyo -Name LastWriteTime -Value "2019/12/24 00:02:00"
 
「FolderSort.bat」をダブルクリックして実行すると更新日時が「hoge」→「fuga」→「piyo」の順番になるように更新され、更新日時で並び替えることで「hoge」→「fuga」→「piyo」の順番になります。

f:id:akira2kun:20200103163557j:plain