배치 이름 변경 시리즈 사례 코드
사례 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를 사용할 수 있다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
BAT 일괄 처리 서비스 작동 여부를 판단하는 방법(일괄 처리 명령 통합 적용)일괄 처리(Batch), 일괄 처리 스크립트라고도 합니다.말 그대로 일괄 처리는 특정한 대상을 대량으로 처리하는 것으로 일반적으로 간단한 스크립트 언어로 여겨지며 이것은 DOS와 Windows 시스템에 응용된다.일괄...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.