Skip to content

Instantly share code, notes, and snippets.

@ijprest
Created September 10, 2011 01:52
Show Gist options
  • Star 7 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ijprest/1207818 to your computer and use it in GitHub Desktop.
Save ijprest/1207818 to your computer and use it in GitHub Desktop.
CMD Batch file implementation of toupper() and tolower()
@echo off & SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
SET STR=Test String
SET STR
call :tolower STR
SET STR
call :toupper STR
set STR
goto :EOF
:: toupper & tolower; makes use of the fact that string
:: replacement (via SET) is not case sensitive
:toupper
for %%L IN (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) DO SET %1=!%1:%%L=%%L!
goto :EOF
:tolower
for %%L IN (a b c d e f g h i j k l m n o p q r s t u v w x y z) DO SET %1=!%1:%%L=%%L!
goto :EOF
@guntari
Copy link

guntari commented Apr 28, 2016

nice work

@Ares-87
Copy link

Ares-87 commented Oct 23, 2016

Hello, I suggest you a fix, if the string is empty at the time of conversion will return this as result "a=a" or the first element of array.
To prevent this, add in the two arrays, "^^" without quotes:

:tolower (a b c d...) and :toupper (A B C D...)
:tolower (^^ a b c d...) and :toupper (^^ A B C D...)

I hope can be useful. Bye

@s7646984
Copy link

s7646984 commented Jun 1, 2018

Thank you, works well

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment