By registering with us, you'll be able to discuss, share and private message with other members of our community.

SignUp Now!

Convert Filenames To Lowercase & Underscores


Staff member
Migrated From JP Software Wiki

Renlow_score.btm displays all files in a folder in a point-and-shoot menu and for filenames selected it converts the name to lowercase and replaces spaces with underscores.

This is particularly useful when uploading to a Unix/Linux system files created in Windows, because Unix/Linux often automatically replaces spaces in filenames with "%20", in which case links to the uploaded files that still contain spaces in the names may not work. Also, directory and file names are not case-sensitive in Windows but are case-sensitive in Unix/Linux. Common practice in Unix/Linux is for path and file names to be entirely lowercase.

Programming technique

I tried using select with the @replace function and the rename command but they don't work together. The solution is to use echo to write code for a temporary batch file, have select call the batch file and then delete the batch file.

If the text processing needed multiple steps, instead of echoing a single function line, TEXT -- ENDTEXT could write a large multi-step temporary batch file.

Batch file code

:  renlow_score.btm
:  by Joseph "Rick" Reinckens
:  Displays all files in a folder in a point-and-shoot menu
:  For filenames selected it converts the name to all lowercase
:  and replaces all spaces with underscores

:  FUNCTION scorelow %@replace[ ,_,%@lower[%1]]
@echo off

:  Create a temporary batch file
echo `rename %1 %@replace[ ,_,%@lower[%1]]`>c:\zztemp.btm

select call c:\zztemp.btm (*.*)

:  Delete the temporary file
del c:\zztemp.btm /q
Contributed by Rick Reinckens