i understand what you’re talking about. when using scripts to move and rename files, the $replace() function properly works with ?, <, >, *, and " for both the previews and the actual renaming of the files. but not with /, \, |, or :. when using the latter illegal chars, the preview boxes in the file naming scheme windows will show that $replace(%tag%,'/',-) works, however, the preview box in the move, rename, or copy files window will show that the / is still being replaced with _ and it will be renamed this way also.
you can however use $replace(%tag%,_,-) to replace the /, \, |, and : chars with a string of your choice, just change the - in that script with the string you want.
also, when using $replace(%tag%,_,-), the preview boxes in the file naming scheme windows will show that the / has not been replaced with a -. but the move, rename, or copy files window will, and the file will be renamed this way.
i agree the $replace() function should work with whatever chars you throw at it, and have them properly handled before they are modified for correct filenames.
here is the script that i use to move and rename my albums
$if(%artist%,$trim($replace($replace($replace($replace($replace($replace(%artist%,?,),<,{),>,}),'"',''),*,+),_,-)),unknown artist)/[%date%'.' ]$if(%album%,$trim($replace($replace($replace($replace($replace($replace(%album%,?,),<,{),>,}),'"',''),*,+),_,-)),unknown album)/$if(%discname%,$trim($replace($replace($replace($replace($replace($replace(%discname%,?,),<,{),>,}),'"',''),*,+),_,-))'/',[%disc%.])[$left(%tracknumber%,2). ]$trim($replace($replace($replace($replace($replace($replace(%title%,?,),<,{),>,}),'"',''),*,+),_,-))