#!/usr/bin/perl use strict; use MP3::Info; my $folder = $ARGV[0]; if ( $folder eq "" ) { print "You suck\n"; # or any other kind error message! exit; } opendir( DIR, $folder ); my @files = map { $folder . "\\" . $_ } readdir( DIR ); closedir( DIR ); open FILE, ">", "debug.txt"; foreach ( @files ) { my $mp3 = new MP3::Info( $_ ) or next; my $new_name = ( $mp3->tracknum ne "" ? sprintf( "%02d", $mp3->tracknum ) . " - " : "" ) . $mp3->artist . " - " . $mp3->title . ".mp3"; $new_name =~ s/[\/:?]//g; # take out illegal characters $new_name = $folder . "\\" . $new_name; print $new_name, "\n"; print FILE "$_ -> $new_name\n"; rename $_, $new_name; } close FILE;