depends on what language you are using, a quick and dirty example in python
Code
#python 2.7
import os
def ChangeName(input_filename, input_root, input_dirs):
new_filename = input_filename
if " - " in new_filename:
pass
else:
new_filename=new_filename.replace("-", " - ")
new_filename=new_filename.replace("feat.", "ft.")
if " - (Karaoke)" in new_filename:
pass
else:
new_filename=new_filename.replace("(Karaoke)", " - (Karaoke)")
new_filename=" ".join(new_filename.split())
new_filename=new_filename.strip()
input_file_full_path = input_root + "\\" + "\\".join(input_dirs) + input_filename
new_file_full_path = input_root + "\\" + "\\".join(input_dirs) + new_filename
if input_file_full_path != new_file_full_path:
try:
os.rename(input_file_full_path, new_file_full_path)
except:
print "failed to rename " + input_file_full_path
music_folder = r"c:\music"
for root, dirs, files in os.walk(music_folder):
for file in files:
ChangeName(file, root, dirs)