Skip to content

Instantly share code, notes, and snippets.

@ijprest
Created September 10, 2011 01:52
Show Gist options
  • Select an option

  • Save ijprest/1207818 to your computer and use it in GitHub Desktop.

Select an option

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
@Ares-87
Copy link
Copy Markdown

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
Copy Markdown

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