Convert Filenames To Lowercase & Underscores

  • This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn more.

nchernoff

Administrator
Staff member
May 16, 2008
42
2
#1
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

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