Page 1 of 1

A Script to Organize ROMs by Filename

Posted: Tue Dec 20, 2022 7:46 pm
by jamespo

If you have a large directory with 100s or 1000s of roms, this script will create subdirectories a b c d etc and move the files in there, based on the first letter of their filename: https://github.com/jamespo/directorysorter

Files beginning with numbers go into a 0-9 directory & everything else goes into an _others directory.

Written in Python 3, no warranty is given, use at your own risk! I'd suggest you try it in a test directory first.


Re: A Script to Organize ROMs by Filename

Posted: Tue Dec 20, 2022 10:44 pm
by Chris23235
jamespo wrote: Tue Dec 20, 2022 7:46 pm

If you have a large directory with 100s or 1000s of roms, this script will create subdirectories a b c d etc and move the files in there, based on the first letter of their filename: https://github.com/jamespo/directorysorter

Files beginning with numbers go into a 0-9 directory & everything else goes into an _others directory.

Written in Python 3, no warranty is given, use at your own risk! I'd suggest you try it in a test directory first.

Thank you, such a script comes in handy. If you are on Windows, you can use this small batch I once wrote for this purpose:

Code: Select all

echo Create Folder
md a b c d e f g h i j k l m n o p q r s t u v w x y z #
echo Delete ZIP Files
del *.zip
echo Delete Bad Dumps
del *[b*.*
echo Move Files
move a*.* a
move b*.* b
move c*.* c
move d*.* d
move e*.* e
move f*.* f
move g*.* g
move h*.* h
move i*.* i
move j*.* j
move k*.* k
move l*.* l
move m*.* m
move n*.* n
move o*.* o
move p*.* p
move q*.* q
move r*.* r
move s*.* s
move t*.* t
move u*.* u
move v*.* v
move w*.* w
move x*.* x
move y*.* y
move z*.* z
move *.* #
pause

When run it will first delete all zip files and then all bad dumps. If you want to work with zipped files delete the line and the bad dumps are only deleted if the files have the GoodSet name convention. After running the file you have to manually delete the batch from the folder #.

Unlike the script from jamespo this will only work on Windows.


Re: A Script to Organize ROMs by Filename

Posted: Thu Dec 22, 2022 9:01 pm
by pgimeno

Bash is great for these kind of things, and MiSTer has it of course. Here's a short script that does this:

Code: Select all

mkdir {A..Z}
for i in {A..Z} ; do
  mv "$i"?* "${i,}"?* "$i/"
done
mkdir -p 1
for i in ??* ; do
  mv "$i" 1/
done
rmdir 1 {A..Z}  # remove empty folders

It may spit a few errors that can be ignored. This one doesn't create 0, 1, ..., 9 folders or the "_others" folder, it would be easy to do but I personally prefer to have everything with numbers and symbols in the same folder, since there are usually very few of them to justify such segregation. So everything not alphabetic goes to the 1/ folder.

But for ROMs and tapes, I prefer to zip the stuff and have 1.zip, A.zip, B.zip, C.zip and so on. Sometimes for floppies too, but keep in mind that writes to floppies won't be stored. This script will do the trick:

Code: Select all

for i in {A..Z} ; do
  zip -9m "$i".zip "$i"* "${i,}"*
done
zip -9m 1.zip [!A-Za-z]*

As for how to use these, you can just copy them to a file in the MiSTer's Linux and then, from bash, run 'source <file>' on the folder with the ROMs. Or if you can copy/paste the commands directly to an SSH session, that works too.