배치 이름 변경 시리즈 사례 코드

텍스트/파일에 대한 일괄 처리는 확실히 매우 간단하고 강력합니다!복잡한 코드를 사용하지 않고 수첩 하나에 간결한 코드를 더하면 대부분의 텍스트/파일의 조작을 할 수 있다. 아래에 내가 사용한 코드를 기록하면 기본적으로 내가 바이두에서 지인들에게 대답한 코드들이다. 간객들에게 참고할 뿐만 아니라 잊어버리는 역할도 한다...
사례 1,
폴더에 있는 모든 파일을 001002로 명명하고 싶은데... 이렇게 순서대로 어떤 순서든 상관없어요. 이름만 바뀌면 돼요. 누가 써줘요.
내가 제시한 코드:

@echo off  
setlocal enabledelayedexpansion   
set var=1000  
for /r "%~dp0" %%i in (*.*) do (   
 set /a var+=1   
 if not "%%~nxi"=="%~nx0" ren "%%i" !var:~-3!%%~xi   
)  
pause>nul  
echo  , ...  
exit
간단한 설명:
1. for/r를 사용하여 현재 디렉터리(%~dp0)의 모든 파일을 훑어보며, 효율은 for/f+dir/s/b보다 높다.
2.if not 문장은bat 파일 자체를 배제하는 데 사용되며, 전체 경로는%0이며,bat 파일 이름:%~nx0으로 확장됩니다.
3. 변수 1000을 이용하여 누적, 매번 이용!var:~-3!3위, 즉 순서대로 001, 002, 003...
Ps:var=1000, 이 스크립트는 최대 999개의 파일 이름을 바꾸고 덮어쓰기 오류가 발생할 수 있습니다. 어떻게 수정합니까?간객이 생각해 주십시오. 평론에 당신의 코드를 남기는 것이 가장 좋습니다. 하하!(비교적 간단하니 대하는 벽돌을 치지 마세요!)
사례 2,
"예를 들어 폴더에 있는 파일은 X1, X2... X51입니다. 제 파일 이름은 X15.ass입니다. 다 쓰고 나면 [Yousei-raws] Soul Eater 14 [BDRip 1280x720 x264 FLAC]로 바뀝니다. ass 코드는 다음과 같습니다.

@echo off  
set a=0  
setlocal EnableDelayedExpansion  
for %%n in (*.ass) do (  
ren "%%n" "[Yousei-raws] Soul Eater !a! [BDrip 1280x720 x264 FLAC].ass" 
set /A a+=1  
)
어떻게 해야 순서를 정확하게 할 수 있는지 말씀드리는 김에 마지막 51이 1이 되었습니다.
내가 제시한 코드:

@echo off   
set a=100  
setlocal EnableDelayedExpansion   
for /f "delims=*" %%n in ('dir /b *.ass') do (  
  set /a a+=1  
  ren "%%n" "[Yousei-raws] Soul Eater !a:~-2! [BDrip 1280x720 x264 FLAC].ass"  
)
간단한 해석: a의 값이 0으로 초기화되었기 때문에 첫 번째 파일은 0, 두 번째 파일은 1, 그러면 15번째 파일은 14입니다...코드가 다음 순서로 바뀌었습니다. 먼저 a+1을 주고 이름을 바꿀 때 a의 값을 1로 하면 됩니다.
Ps: 여기에서 for+dir 방식을 사용하면 효율이 조금 낮지만 오류율도 낮아져 이해하기 쉽습니다!물론 마찬가지로 for/r를 사용할 수 있다.

좋은 웹페이지 즐겨찾기