hi, y'all,
last night i tried getting a perl script i wrote to change long filenames on a win32
platform, or to copy the files to another directory with changed names. the filenames
are formatted like this: nn - xxxxxxxx - xxxx.fff, where n's are numbers, x's are
strings, \s-\s is a delimiter; and f's are file extension. more specifically, the
filenames are of mp3's from my jukebox that i transfer to my palm sd/mmc. nn's are
track numbers, the first string is artist, the second is song name; and the file
extension is mp3. for example, 05 - Flack, Roberta - Feel Like Makin' Love.mp3. the
script should change the filenames, eliminating track number, starting the filename
with song name, followed by delimiter, then artist; ending with file extension. for
example, Feel Like Makin' Love - Flack, Roberta.mp3
the script i wrote is below, the system() command the last variation on that line of
code before i gave up:
opendir(NT, "c:/Media/Music/palm");
while($name = readdir(NT)) {
@nameArray = split(/\./, $name);
@fields = split(/\s-\s/, $nameArray[0]);
$newName = $fields[2] . " - " . $fields[1] . ".mp3";
$oldName = $name;
system(copy "c:/Media/Music/palm/$oldName", "c:/Media/Music/palm/$newName");
}
closedir(NT);
i also tried the rename() command, as well as the native ren command. i couldn't get
what i want in perl, so i wrote this vbs (which works):
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder("C:\Media\Music\faves")
Set colFiles = objFolder.Files
For Each objFile in colFiles
fileName = objFSO.GetFileName(objFile)
newFileName = Right(fileName, Len(fileName)-5)
newFileName = Left(newFileName, Len(newFileName)-4)
arrayNewFileName = split(newFileName, " - ")
newFileName = arrayNewFileName(1) & " - " & arrayNewFileName(0) & ".mp3"
objFSO.CopyFile "C:\Media\Music\faves\" & fileName , "C:\Media\Music\palm\" &
newFileName
'WScript.Echo newFileName
Next
MsgBox "Finished!"
i'm supposing the problem lies with my not getting the typography or syntax right for
filenames that can have all kinds of typography in them. could somebody kindly set me
straight on what would have made my perl script run so that i wouldn't have had to
have done a vbscript?
thanks,
james