Ну, я искал какой-то синтаксис и наткнулся на эту страницу. Я знаю, что оно старое, но я решил сделать перерыв и слегка надрать мозгу.
Вот что-то немного короче и управляемее. Это просто «перебор» всех заглавных букв в строчные, независимо от того, существует ли в строке фактическая буква или нет. Таким образом, функциональный цикл выполняется ровно 26 раз, независимо от длины строки.
Надеюсь, это кому-нибудь поможет.
@echo off
cls
setlocal enabledelayedexpansion
REM ***** Modify as necessary for the string source. *****
set "_STRING=%*"
if not defined _STRING set "_STRING=%USERNAME%"
set _STRING
REM ***** Modify as necessary for the string source. *****
set "_UCASE=ABCDEFGHIJKLMNOPQRSTUVWXYZ"
set "_LCASE=abcdefghijklmnopqrstuvwxyz"
for /l %%a in (0,1,25) do (
call set "_FROM=%%_UCASE:~%%a,1%%
call set "_TO=%%_LCASE:~%%a,1%%
call set "_STRING=%%_STRING:!_FROM!=!_TO!%%
)
set _STRING
endlocal
Пример:
E:\OS.ADMIN>LCASE.BAT The Quick Fox Jumps Over The Brown Fence.
Результат:
_STRING=The Quick Fox Jumps Over The Brown Fence.
_STRING=the quick fox jumps over the brown fence.