Windows에서 하나의 명령으로 폴더의 모든 파일 확장자 변경


145

Windows 명령 줄을 사용하여 수천 개의 파일 확장자를로 바꾸려면 *****.jpg어떻게 해야 합니까?


모든 확장명을 *****. jpg로 변경한다는 것은 무엇을 의미합니까? jpg의 모든 파일 확장자를 의미합니까? 그렇다면 ren을 사용하십시오 . * .jpg
Imran Rizvi

어떤 운영 체제입니까? 어떻게 바꾸시겠습니까?
bryce

@bryce 오프 코스 윈도우 운영 체제 ..
Berker Yüceer

답변:


298

당신은 사용할 수 있습니다 ren(같이 이름 바꾸기 ) :

ren *.XXX *.YYY

물론 적절한 확장을 위해 XXX와 YYY를 전환하십시오. XXX 에서 YYY로 변경 됩니다 . 모든 확장명을 변경하려면 와일드 카드를 다시 사용하십시오.

ren *.* *.YYY

이 작업을 재귀 적으로 수행하는 한 가지 방법은 FOR명령을 사용하는 것입니다. /R일치하는 파일에 명령을 재귀 적으로 적용하는 옵션 과 함께 사용할 수 있습니다 . 예를 들면 다음과 같습니다.

for /R %x in (*.txt) do ren "%x" *.renamed

현재 디렉토리에서 시작 .txt하여 모든 확장을 .renamed재귀 적으로 변경합니다 . %x일치하는 파일 이름을 보유하는 변수입니다.

또한 수천 개의 파일이 있으므로 커서가 다시 깜박이기 시작할 때까지 기다렸다가 작동했음을 나타냅니다.

참고 : 이것은 cmd에서만 작동합니다. Powershell 또는 Bash에서 작동하지 않습니다


* .XXX는 특정 확장명에 대한 파일을 변경합니다 (확장명이 XXX 인 모든 파일의 이름이 변경됨을 의미 함)
Habib

@ keyser5053 또한 여기에서 만든 작업에 대한 보고서를 얻을 수 ren *.* *.jpg > E:\Log\Cmd\ExtChange\ext.txt있습니까?
Berker Yüceer

그리고 모든 하위 디렉토리에서 재귀 교체는 어떻습니까?
NightElfik

@NightElfik 그 용도 재귀 예를 추가FOR
사람 Keyser

4
이 기능을 powershell에서 작동시킬 수는 없지만 cmd.exe에서는 정상적으로 작동했습니다. 다른 사람들이 알 수 있도록.
hazzey

20

CMD에

유형

ren *.* *.jpg

. 모든 파일을 선택하고 * (이름이 무엇이든)와 jpg의 확장자로 이름을 바꿉니다.


10

행동 이름 바꾸기는 때때로 '직관적이지 않은'것입니다. 예를 들어 ...

ren * .THM * .jpg는 THM 파일의 확장자를 .jpg로 바꿉니다. 예 : GEDC003.THM은 GEDC003.jpg입니다.

ren * .THM * b.jpg는 THM 파일의 이름을 * .THMb.jpg로 바꿉니다. 예 : GEDC004.THM은 GEDC004.THMb.jpg가됩니다.

ren * .THM * .b.jpg는 THM 파일의 이름을 * .b.jpg로 바꿉니다. 예 : GEDC005.THM은 GEDC005.b.jpg가됩니다.


좋은 설명
Arslan Ahmad

7

참고 : Windows 용 아님

ren-1.0을 사용하는 올바른 형식은 다음과 같습니다.

"ren *.*" "#2.jpg"

에서 man ren

대체 패턴은 포함 된 와일드 카드 색인이있는 다른 파일 이름이며, 각각은 문자 #과 1-9의 숫자로 구성됩니다. 일치하는 파일의 새 이름에서 와일드 카드 색인은 참조와 일치하는 실제 문자로 대체됩니다. 원래 파일 이름의 와일드 카드

쉘은 일반적으로 와일드 카드 * 및?를 확장하는데, 이는 ren의 경우 바람직하지 않습니다. 따라서 대부분의 경우 검색 패턴을 따옴표로 묶어야합니다.


나는 # 1을 사용해야했다 : ren "* .csv" "# 1.json"
elmalto

1
man ren? 문제는 Windows /에 관한 것이었다 cmd. 그것들은 이제 man페이지를 제공 합니까? 페이지가 무엇 ren-1.0이며 어떻게 man문맥에서 볼 수 있습니까?
underscore_d


3

배치 파일 에서이 작업을 수행하려는 사람들을 위해이 코드는 작동합니다.

FOR /R "C:\Users\jonathan\Desktop\test" %%f IN (*.jpg) DO REN "%%f" *.png

이 예에서 C : \ Users \ jonathan \ Desktop \ test 디렉토리에 확장자가 .jpg 인 모든 파일은 * .png로 변경됩니다.


2

여러 파일 확장자의 이름을 바꾸십시오.

당신은 변경하려면 ringtone1.mp3, ringtone2.mp3ringtone1.wav,ringtone2.wav

방법은 다음과 같습니다. 명령 프롬프트 (CMD)의 d 드라이브에 있으므로 다음을 사용합니다.

d:\>ren *.* *.wav 

이것은 파일 확장자의 예일뿐입니다. WAV, MP3, JPG, GIF, bmp, PDF, DOC, DOCX, TXT와 같은 모든 유형의 파일 확장자를 사용할 수 있습니다. 운영 체제에 따라 다릅니다.

또한 수천 개의 파일이 있으므로 커서가 다시 깜박이기 시작할 때까지 기다렸다가 작동했음을 나타냅니다.


1

제 경우에는 800+ 파일로 끝나는 디렉토리가 있습니다 .StoredProcedure.sql( SSMS 로 스크립트되었습니다 ).

위에 게시 된 솔루션이 작동하지 않았습니다. 그러나 나는 이것을 생각해 냈습니다.

( 배치 프로그래밍 에 대한 답변을 기반으로 -파일의 상대 경로 가져 오기 )

@echo off
setlocal enabledelayedexpansion
for %%f in (*) do (
  set B=%%f
  set B=!B:%CD%\=!
  ren "!B!" "!B:.StoredProcedure=!"
)

위 스크립트는 .StoredProcedure파일 이름 에서 하위 문자열 을 제거합니다 . 더 많은 사례를 다루고 입력을 요청하며 전반적으로 더 일반적으로 적용 할 수 있다고 확신합니다.


2
set명령을이 단일 명령으로 바꾸십시오 set "B=%%~nxf". ( %%~nxfN AME 전자 의 X 의 장력 %%f). %cd%재귀 할 때 유효하지 않을 수 있습니다.
Stephan


0

renamer npm 패키지를 사용하여 파일의 이름을 바꾸는 다른 방법 입니다.

아래는 파일 확장명을 바꾸는 예입니다.

renamer -d --path-element ext --find ts --replace js *

0

나를 위해 일한 것은 이것입니다 (먼저 폴더로 cd).

Get-ChildItem -Filter *.old | Rename-Item -NewName {[System.IO.Path]::ChangeExtension($_.Name, ".new")}
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.