여러 파일의 마지막 부분 이름을 제거하여 이름을 바꾸는 방법

여러 파일의 마지막 부분 이름을 제거하여 이름을 바꾸는 방법

이름을 바꿀 파일이 많이 있습니다.

예: 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

관련 정보