
대소문자가 뒤섞인 많은 폴더를 가지고 있다면 정렬하는 방법이 복잡하며 이로인해 화일의 위치를 파악하기 힘들다. 이 것외에 여러가지 이유 때문에 동일한 대소문자를 갖도록 파일명을 부여하는 것이 좋다.
환경변수 문자열 대치에서 환경변수 문자열을 대치하는 방법을 배웠다.
배치 매개변수 해석에서 배치 파일명 매개변수를 배치파일 변수의 일부분으로 해석하는 방법을 배웠다.
이들 기법을 결합해서
LwrCase.bat라는 배치파일을 작성할 수 있다. 이 파일은 경로내에 존재해야 한다.
@echo off
set LC1=%~nx1
set LC1=%LC1:"=%
set LC1=%LC1:A=a%
set LC1=%LC1:B=b%
set LC1=%LC1:C=c%
set LC1=%LC1:D=d%
set LC1=%LC1:E=e%
set LC1=%LC1:F=f%
set LC1=%LC1:G=g%
set LC1=%LC1:H=h%
set LC1=%LC1:I=i%
set LC1=%LC1:J=j%
set LC1=%LC1:K=k%
set LC1=%LC1:L=l%
set LC1=%LC1:M=m%
set LC1=%LC1:N=n%
set LC1=%LC1:O=o%
set LC1=%LC1:P=p%
set LC1=%LC1:Q=q%
set LC1=%LC1:R=r%
set LC1=%LC1:S=s%
set LC1=%LC1:T=t%
set LC1=%LC1:U=u%
set LC1=%LC1:V=v%
set LC1=%LC1:W=w%
set LC1=%LC1:X=x%
set LC1=%LC1:Y=y%
set LC1=%LC1:Z=z%
ren %1 "%LC1%"
이름을 바꾸려는 파일(또는 현재 폴더내의 파일명)의 완전한 경로명으로
LwrCase.bat 파일을 호출할 수 있다. 예를들어:
call LwrCase "%SystemRoot%\System32\Ancient Pathways.dll"
만약 폴더내의 모든 파일의 대소문자를 변경하려면 LwrCase_Folder "\"를 호출한다. 여기서
LwrCase_Folder는 다음과 같은 내용을 포함한다.
@echo off
pushd %1
for %%i in (*.*) do call lwrcase "%%i"
popd
만약 하위 폴더를 포함해서 임의의 폴더의 모든 파일의 대소문자를 변경하려면 LwrCase_Tree "\"를 호출한다. 여기서
LwrCase_Tree는 다음과 같은 내용을 포함한다.
@echo off
pushd %1
dir *.* /b /a-d /s lwrcase.log
for /f %%i in ('type lwrcase.log') do call lwrcase "%%i"
del /q lwrcase.log
popd