DesktopAlbum
のファイルからごにょごにょするスクリプト。私専用。書き捨てだけど、いちおう残しておきます。エラーチェックとかなにもしてないのは仕様。
use strict; use warnings; opendir my $dh, '.'; my @fp; while (defined($_ = readdir $dh)) { next unless /ALB$/i; open my $fh, '<:raw', $_; seek $fh, 20 + 8 + 4 * 3 + 16, 0; read $fh, my $buf, 72; close $fh; unpack 'a72', $buf; next unless $buf =~ /sha256:\s([\da-f]{8})/i; push @fp, {fp => $1, file => $_, buf => $buf}; } closedir $dh; @fp = sort {$a->{fp} cmp $b->{fp}} @fp; foreach (@fp) { chdir sprintf 'D:/My Pictures/sha256/%s/%s/%s/', split //, substr($_->{fp}, 0, 3); link $_, "D:/tool/DesktopAlbum/$_" for glob "$_->{fp}*"; }