chaley did this for me way back when I only had my EZReader
I made a few small changes over the years.
Code:
program:test(field('series'),strcat(
substr(field('series'), 0, 1),template("-series/{series:subitems(0,1)||/}{series:subitems(1,2)||/}{series_index:0>5.2f}-{title}_{authors}_{id}")
),template("00noseries/{author_sort[0]}_authors/{author_sort}/{title}-{authors}_{id}")
)
Since it did not have any bookshelf
I had Noseries make a folder by Author (last) Initial, then put the author in that
Similar, I had Series by letter, then name. I use 2 decimals to indicate omnibus or a short (between main) Thus the 5.2f