
이름을 바꿀 파일이 많이 있습니다.
예: ERKS 400001_thumb.jpg ERKS 500124_thumb.jpg ERKS100004_thumb.jpg
위 파일의 이름을 다음과 같이 바꾸고 싶습니다.
예: 00400001.jpg 00500124.jpg 00100004.jpg
이 코드를 사용했지만 필요한 결과를 얻을 수 없습니다.
@ECHO ON
SETLOCAL ENABLEDELAYEDEXPANSION
SET SourceDir=F:\Square.....
FOR /F "TOKENS=1-3 DELIMS=. " %%F IN ('DIR /B /A-D "%SourceDir%\*.jpg"') DO (
SET "part1=%%~F"
SET "part2=%%~G"
SET "part3=%%~H"
REN "%SourceDir%\!part1! !part2!.!part3!" "00!part2!.!part3!"
)
GOTO EOF
위의 코드를 실행하면 결과는 다음과 같습니다.
예: 00400001_thumb.jpg 00500124_thumb.jpg 00100004_thumb.jpg파일 이름을 어떻게 바꿀 수 있나요?
답변1
이 특별한 경우에 설명하는 내용에는 아래 구문을 사용하는 것이 좋습니다. 추가 구분 기호를 추가해야 합니다._
문자를 추가하고 토큰을 하나 더 추가합니다 1-4
. 추가 토큰과 구분 기호를 사용하여 part4
예상한 결과를 제공하기 위해 변수를 추가했습니다.
이것은 당신에 대한 내 대답과 관련된 것 같기 때문에이 게시물, 나도 이것에 도움이 될 것이라고 생각했습니다.
모든 JPG 파일
@ECHO ON
SETLOCAL ENABLEDELAYEDEXPANSION
SET SourceDir=F:\Square.....
FOR /F "TOKENS=1-4 DELIMS=._ " %%F IN ('DIR /B /A-D "%SourceDir%\*.jpg"') DO (
SET "part1=%%~F"
SET "part2=%%~G"
SET "part3=%%~H"
SET "part4=%%~I"
REN "%SourceDir%\!part1! !part2!_!part3!.!part4!" "00!part2!.!part4!"
)
GOTO EOF
폴더에 "thumb"라는 단어가 포함된 JPG 파일이 있고 다른 폴더에는 "thumb"라는 단어가 없는 경우 아래 스크립트를 사용하여 "thumb"라는 단어가 있는 파일만 변경할 수 있습니다. 귀하의 질문에 설명하십시오.
Thumb이라는 이름의 JPG 파일만
@ECHO ON
SETLOCAL ENABLEDELAYEDEXPANSION
SET SourceDir=F:\Square.....
FOR /F "TOKENS=1-4 DELIMS=._ " %%F IN ('DIR /B /A-D "%SourceDir%\*thumb.jpg"') DO (
SET "part1=%%~F"
SET "part2=%%~G"
SET "part3=%%~H"
SET "part4=%%~I"
REN "%SourceDir%\!part1! !part2!_!part3!.!part4!" "00!part2!.!part4!"
ECHO "%SourceDir%\!part1! !part2!!part3!.!part4!" "00!part2!.!part4!"
)
GOTO EOF
추가 리소스
답변2
다음 코드 조각은 두 가지 가능한 솔루션을 보여줍니다.
스크립트(작동 RENAME
명령은 디버깅 및 시연 목적으로만 표시됩니다 ECHO
.)
@ECHO OFF >NUL
SETLOCAL EnableExtensions DisableDelayedExpansion
SET "SourceDir=D:\bat\SU\Files\1126981" change to meet your circumstances
echo if _thumb part is fixed
FOR /F "TOKENS=1-3 DELIMS=. " %%F IN ('DIR /B /A-D "%SourceDir%\*.jpg"') DO (
SET "part1=%%~F"
SET "part2=%%~G"
SET "part3=%%~H"
SETLOCAL EnableDelayedExpansion
echo REN "%SourceDir%\!part1! !part2!.!part3!" "00!part2:_thumb=!.!part3!"
ENDLOCAL
)
echo(
echo if _thumb part could vary, e.g. _thumb, _thumbnail, _thumbsketch
FOR /F "TOKENS=*" %%g IN ('DIR /B /A-D "%SourceDir%\*.jpg"') DO (
FOR /F "TOKENS=1-4 DELIMS=_. " %%F IN ("%%~g") DO (
echo REN "%SourceDir%\%%~g" "00%%~G.%%~I"
)
)
산출:
==> D:\bat\SU\1126981.bat
if _thumb part is fixed
REN "D:\bat\SU\Files\1126981\ERKS 100004_thumb.jpg" "00100004.jpg"
REN "D:\bat\SU\Files\1126981\ERKS 400001_thumb.jpg" "00400001.jpg"
REN "D:\bat\SU\Files\1126981\ERKS 500124_thumb.jpg" "00500124.jpg"
REN "D:\bat\SU\Files\1126981\ERKS 900009_thumbnail!.jpg" "00900009nail!.jpg"
if _thumb part could vary, e.g. _thumb, _thumbnail, _thumbsketch
REN "D:\bat\SU\Files\1126981\ERKS 100004_thumb.jpg" "00100004.jpg"
REN "D:\bat\SU\Files\1126981\ERKS 400001_thumb.jpg" "00400001.jpg"
REN "D:\bat\SU\Files\1126981\ERKS 500124_thumb.jpg" "00500124.jpg"
REN "D:\bat\SU\Files\1126981\ERKS 900009_thumbnail!.jpg" "00900009.jpg"
==>
답변3
그것은 제가 한동안 갖고 있던 코드 조각입니다. 접미사(jpg), 문자열 대상(_thumbs), 마지막으로 대체 문자열(문자열을 빈 문자열로 바꾸려면 공백으로 남겨두기)을 입력하라는 메시지가 표시됩니다.
@echo off
Setlocal enabledelayedexpansion
ECHO Enter the suffix target (e.g. txt, jpg):
Set /P Suffix=
ECHO Enter Target String:
Set /P Pattern=
ECHO Enter Replacement String (or leave blank):
Set /P Replace=
For %%# in ("*.%Suffix%") Do (
Set "File=%%~nx#"
Ren "%%#" "!File:%Pattern%=%Replace%!"
)
귀하의 경우: 이 배치 파일을 처음 실행합니다. 대상 "ERKS " 교체 "00";없이인용. 두 번째 실행: 대상 "_thumbs"가 ""로 대체되었습니다. 대체 항목을 공백(문자 없음)으로 지정하려면 아무것도 입력하지 않고 Enter 키를 누르십시오.
답변4
만약 당신이
00400001_thumb.jpg 00500124_thumb.jpg 00100004_thumb.jpg
나머지는 케이크 조각입니다. 파일의 문자 길이가 동일한 것으로 보이므로 다음을 수행하십시오.
ren *.jpg ????????.jpg
그리고 당신은 다음을 갖게 될 것입니다 :
00400001.jpg 00500124.jpg 00100004.jpg