Random numbered files using win7 in bat file

I have a mp3 player that has a poorly designed hard coded random generator for shuffling songs. Every time I turn it on, it plays the same sequence (5-22-3-150-75-86... etc) In order to hear a larger variety I want to be able to periodically randomize the file names on the usb stick and alter the files position in the directory listing.

I am trying to rename all file names in a sub-directory to a random number. This is what I have been trying but it does not work. For some reason %num% is blank in the new file name.

1|    for %%A in (*.mp3) DO (
2|    set /A num=%RANDOM%*100/32768+1
3|    ren "%%A" %num%.mp3
4|    )
5|    pause

(Line numbers added for clarity during this discussion)

The output for each file is shown below.

D:\music_playlists\pop-mix [25gb]>(
set /A num=13621*100/32768+1
ren "Country-132.mp3" .mp3
)
A duplicate file name exists, or the file
cannot be found.

As you can see the %NUM% is not being expanded to a file name on line #3...

What do I need to do?

update - not sure exactly what was going on but this seems to work even though the echo shows a blank field

SETLOCAL EnableDelayedExpansion

FOR %%A IN (*.mp3) DO (
SET  /A NUM=!RANDOM!
echo !NUM!
REN "%%A" !NUM!.mp3
)

PAUSE

Solution 1:

Try enabling delayed expansion and changing the % signs used with RANDOM and NUM to ! points:

SETLOCAL EnableDelayedExpansion

FOR %%A IN (*.mp3) DO (
SET /A NUM=!RANDOM!*100/32768+1
REN "%%A" !NUM!.mp3
)

PAUSE