2012-04-14 3 views
0

내가 예에 대한 일괄 파일 이름을 트림 싶습니다 : "이 IsGood의 1.1.png"에서이 조건은 스크립트가 모든 얻을해야한다는 것입니다변환 파일 이름

"tig11.png"하려면 파일 이름에서 대문자로 된 문자를 작은 문자로 변환 한 다음 공백없이 자른 파일 이름을 만듭니다. ...

이 작업을 수행하는 데 도움이되도록 제발 ... 감사!

+0

'FOR/L' 루프를 사용하여 각 문자를 검사하거나 실패한? – jeb

+0

그리고 기존 이름이 소문자로만 구성되어 있다면 ...? – dbenham

+0

JohnDoe.txt와 JoyDivision.txt가 같은 폴더에 있다면 ...? – dbenham

답변

1

당신은 이해 지금, 만약 ...

전화로 echo 명령을 변경하여 진행 HELP SET, HELP IFHELP GOTO

을 읽을

set str=This IsGood 1.1 
:again 
set chr=%str:~0,1% 
set str=%str:~1% 
if not "%chr%"=="" echo %chr% 
if not "%str%"=="" goto :again 

파일 이름을 단순 반복으로 시작할 수 있습니다

if not "%chr%"=="" call :checkchar %chr% 
... 
:checkchar 
echo %1 
goto :eof 

읽기 HELP CALL

문자가 대문자인지

:checkchar 
for %%c 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 0 1 2 3 4 5 6 7 8 9) do if .%1==.%%c echo %%1 
goto :eof 

소문자로 변수를 설정하는 기능에 새로운 호에 HELP FOR

변경을 이제 새로운 echo 명령을 읽으면 0

다음 체크를위한 실제 코드를 구현

이제 공백으로 초기화해야하는 변수 인 결과를 fn 변수로 연결하십시오.

파일 이름 처리 (매개 변수 처리 구문에서 ~ n 옵션 참조)를 사용하여 파일 이름을 처리하고 ~ d ~ p ~ x를 사용하여 전체 경로를 새 이름으로 다시 구성하십시오. 옵션)

@echo off 
set fn= 
call :upcaseonly %~n1 
echo %~dp1%fn%%~x1 
goto :eof 

:upcaseonly 
set str=%* 
:again 
set chr=%str:~0,1% 
set str=%str:~1% 
if not "%chr%"=="" call :checkchar %chr% 
if not "%str%"=="" goto :again 
goto :eof 

:checkchar 
for %%c 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 0 1 2 3 4 5 6 7 8 9) do if .%1==.%%c set fn=%fn%%1 
goto :eof 

이것을 시작점으로 사용하십시오. 파일의 이름을 바꾸고 파일이 이미 존재하는지 또는 파일의 이름을 바꿀 수 없는지를 처리하는 논리를 추가해야합니다 ...