Dropbox の日付表示が一番分かりやすいと思う。
年 年年年-月月-日日 時痔.分分.秒秒 なんだけど。
「.」を区切り表示で使うので昔のDOSとかは受け付けないど、今日日 unix から windows まで問題なく使える文字コードだ。
それに対して Richo のスキャン機能のファイル名ときたら
20210521154427606.pdf
年月日で始まってるのは分かるけど、こんなのがずらーっと並ぶと気持ち悪い。
T:\123>dir /B 20180618155926848.pdf 20180618160324618.pdf 20180618160404492.pdf 20180618160537197.pdf 20180618160633584.pdf 20180618160658873.pdf 20180618160726635.pdf 20180618160759978.pdf 20180618160832361.pdf 20180618160856234.pdf 20180618160920348.pdf 20180618160954779.pdf 20180618161049756.pdf 20180618161124348.pdf 20180618161137877.pdf 20180618161208000.pdf 20180618161238306.pdf 20180618161309568.pdf 20180618161851605.pdf 20180618161929225.pdf 20180618162017850.pdf 20180618162044237.pdf 20180618162105531.pdf 20180618162147524.pdf 20180618162203739.pdf 20180618162231843.pdf 20180618162301395.pdf 20180618162322184.pdf 20180618162355280.pdf 20180618162428134.pdf 20180618162453013.pdf 20180618162706581.pdf 20180618162732837.pdf 20180618162801696.pdf 20180618162819322.pdf 20180618162842798.pdf 20180618162907326.pdf 20180830085000106.pdf 20181210084800540.pdf 20190131083550094.pdf 20190131132238417.pdf 20190131132253710.pdf 20190131134932777.pdf 20190424164158299.pdf 20190604113143875.pdf T:\123>
そんなファイル名を纏めて選択して右クリック – 送る – RenameRicho2DorpboxStyle とすると
T:\123>dir /B 2018-06-18 15.59.26 848.pdf 2018-06-18 16.03.24 618.pdf 2018-06-18 16.04.04 492.pdf 2018-06-18 16.05.37 197.pdf 2018-06-18 16.06.33 584.pdf 2018-06-18 16.06.58 873.pdf 2018-06-18 16.07.26 635.pdf 2018-06-18 16.07.59 978.pdf 2018-06-18 16.08.32 361.pdf 2018-06-18 16.08.56 234.pdf 2018-06-18 16.09.20 348.pdf 2018-06-18 16.09.54 779.pdf 2018-06-18 16.10.49 756.pdf 2018-06-18 16.11.24 348.pdf 2018-06-18 16.11.37 877.pdf 2018-06-18 16.12.08 000.pdf 2018-06-18 16.12.38 306.pdf 2018-06-18 16.13.09 568.pdf 2018-06-18 16.18.51 605.pdf 2018-06-18 16.19.29 225.pdf 2018-06-18 16.20.17 850.pdf 2018-06-18 16.20.44 237.pdf 2018-06-18 16.21.05 531.pdf 2018-06-18 16.21.47 524.pdf 2018-06-18 16.22.03 739.pdf 2018-06-18 16.22.31 843.pdf 2018-06-18 16.23.01 395.pdf 2018-06-18 16.23.22 184.pdf 2018-06-18 16.23.55 280.pdf 2018-06-18 16.24.28 134.pdf 2018-06-18 16.24.53 013.pdf 2018-06-18 16.27.06 581.pdf 2018-06-18 16.27.32 837.pdf 2018-06-18 16.28.01 696.pdf 2018-06-18 16.28.19 322.pdf 2018-06-18 16.28.42 798.pdf 2018-06-18 16.29.07 326.pdf 2018-08-30 08.50.00 106.pdf 2018-12-10 08.48.00 540.pdf 2019-01-31 08.35.50 094.pdf 2019-01-31 13.22.38 417.pdf 2019-01-31 13.22.53 710.pdf 2019-01-31 13.49.32 777.pdf 2019-04-24 16.41.58 299.pdf 2019-06-04 11.31.43 875.pdf T:\123>
こうしよう。
Win + R で shell:sendto として送るフォルダを開ける。
そこに書きバッチファイルを仕込む。
RenameRicho2DorpboxStyle.bat
@echo off setlocal EnableDelayedExpansion :loop if "%~1"=="" goto eof set targetfilename=%~n1 if "%~x1" equ ".pdf" ( ren "%~1" "%targetfilename:~0,4%-%targetfilename:~4,2%-%targetfilename:~6,2% %targetfilename:~8,2%.%targetfilename:~10,2%.%targetfilename:~12,2% %targetfilename:~14%.pdf" if not "!ERRORLEVEL!" == "0" ( PAUSE rem EXIT ) ) shift goto loop goto eof rem debug @echo off echo %targetfilename% echo %targetfilename:~0,4% year echo %targetfilename:~4,2% month echo %targetfilename:~6,2% day echo %targetfilename:~8,2% hours echo %targetfilename:~10,2% minutes echo %targetfilename:~12,2% second echo %targetfilename:~14% others echo arg1: %1 echo arg~1: %~1 echo arg~f1: %~f1 echo arg~d1: %~d1 echo arg~p1: %~p1 echo arg~n1: %~n1 echo arg~x1: %~x1 echo arg~a1: %~a1 echo arg~t1: %~t1 echo arg~z1: %~z1 :eof
これで実現可能。但しむやみに使われないように、.pdf のファイルしか対象にしない。
2022-10-18 ちょっと変更した。
Acrobat Reader で開いているのを忘れてこのスクリプト実行したら、ファイル名の変換に失敗した。そりゃそうだ。
失敗したときは、DOS窓を開きっぱなしにして、pauseで止めるようにした。
IF の多重化しているせいで、rename の終了コードが上手く取得できないので、setlocal EnableDelayedExpansion しているが、あんまり使いたくないな。
これからのこと
ファイル名の長さから判別したり、.tif や .jpg も対象にすべきだった。そこは反省しているが、またの機会にしよう。