Windows에서 한 번에 80.000 파일의 이름을 바꾸는 방법


8

폴더에 80.000 개의 파일이 있고 모든 파일의 이름을 바꿔야합니다.

filename.jpg

._filename.jpg

Windows 환경에서는 할 일로 추측합니다. 그 이유는 유닉스 에서이 파일을 tar.gz로 압축하고 Windows로 복사했기 때문에 어떤 이유로 파일 이름이 변경 되었기 때문입니다.

명령이 무엇인지 말해 줄 수 있습니까? 감사

답변:


3

내장 rename또는ren 명령을 사용할 수 있습니다 .

ren *.jpg ._*.jpg

이 모든 것들과 마찬가지로 먼저 몇 개의 파일 만 포함 된 디렉토리에서 시도하십시오.


1
나는 당신의 접근 방식을 좋아하지만 두 가지 문제가 있습니다. (1) 파일 이름의 첫 글자가 바뀝니다. 다른 말로하면, "._"는 처음에 추가되지 않지만 처음 두 글자를 대체합니다. (2) "._"는 실제로 작동하지 않습니다. 예를 들어 "__"을 사용하면 작동합니다. 나는 점 "." 일부 문제를 제기
aneuryzm

@ 패트릭-나는 이것을 완전히 테스트 할 기회가 없었 음을 인정해야합니다. 그렇습니다. 문제를 일으키는 점에 대해 옳다고 생각합니다.
ChrisF

이것은 잘못된 것이며 점 때문이 아닙니다. ren텍스트를 같은 길이의 텍스트로만 바꿀 수 있습니다. 당신이 파일이있는 경우 예를 들어, file1.txt그리고 file2.txt, ren file*.txt blah*.txt당신이 (당신이 지금 파일이 기대하지 blah1.txt하고 blah2.txt). 그러나 ren blah*.txt myfile*.txt명령 을 입력 하면 이름 blah1.txtmyfile.txt(not myfile1.txt)으로 바뀌기 때문에 폭탄이 제거되고 해당 파일이 이미 있기 때문에 이름 blah2.txt을 바꿀 수 없습니다 myfile.txt.
David Richerby

15

PowerShell을 사용하는 방법은 다음과 같습니다.

폴더로 이동하여이 명령을 실행하십시오.

Get-ChildItem *.jpg | Rename-Item -newname {"._" + $_.Name}

추가 보너스 짧은 버전 :

gci *.jpg | ren -newname {"._" + $_.Name}

6

두 가지 해결책이 있습니다.

  1. 모든 파일이 같은 폴더에 있습니다

    • 해당 폴더의 명령 프롬프트에서 다음을 실행하십시오.

      for /f "delims=¯" %i in ('dir /b /on') do ren "%i" "._%i"
      
  2. 하위 폴더에 파일이 있고 "n"첫 문자를 원하는 문자열로 바꾸려는 경우 완벽한 솔루션 : D

    • 다음 명령으로 배치 파일을 만듭니다.
    • 변수 매개 변수를 원하는 것으로 변경
      • path: ""파일의 루트 경로에 넣으십시오 (예 : "C : \ documents and settings \ user \ desktop \ new folder")
      • numfirstchars2replace: 바꿀 첫 문자로 숫자를 입력하십시오 (귀하의 경우 2)
      • str2put: 새 파일 이름의 접두사로 추가 할 문자열을 넣으십시오 (귀하의 경우 ._)
    • 파일이있는 폴더와 다른 폴더에서 실행하십시오.


@echo off

::only to tell user what this bat are doing
echo.1.initializing...

::enable that thing to allow, for example, incremental counter in a for loop :)
echo.- EnableDelayedExpansion
SETLOCAL EnableDelayedExpansion

::variables
echo.- variables
:: - place here the absolute root path of your files
set path="put here where are the root folder of your files"
set pathbak=%cd%
set numfirstchars2replace=2
set str2put=._

::go to %path% and its driveletter
echo.- entering the path you want
for /f "delims=¯" %%i in ('echo.%path%') do %%~di
cd %path%

::search all subfolders and save them to a temp file
echo.- searching for subfolders
echo.%path%>%temp%\tmpvar.txt
for /f "delims=¯" %%i in ('dir /s /b /on /ad') do echo."%%i">>%temp%\tmpvar.txt

::execute command for root folder and all found subfolders
echo.
echo.2.executing...
for /f "delims=¯" %%i in (%temp%\tmpvar.txt) do (
  cd %%i
  echo.- in folder: %%i
  for /f "delims=¯" %%j in ('dir /b /on /a-d') do (
    set newname=%%j
    set newname=!newname:~%numfirstchars2replace%,1000!
    echo.- renaming from "%%j" to "%str2put%!newname!"...
    ren "%%j" "%str2put%!newname!"
  )
)

echo.
echo.3.exiting...
::return to %pathbak% and its driveletter
for /f "delims=¯" %%i in ('echo.%pathbak%') do %%~di
cd %pathbak%

@echo on

완전히 테스트 :) @ChrisF 의견에 몇 가지 사양을 포함하여 문제를 해결합니다. 참고 : "delims = ¯"에서 파일 이름에 "¯"가 사용 된 경우 파일 이름에 사용되지 않는 다른 문자로 "¯"을 변경하십시오.
kokbira

루프를 수행하고 sth의 이름을 바꾸는 엄청나게 긴 스크립트 때문에 투표했습니다. :)
wullxz

글쎄, 정당하게, 모든 파일을 이름별로 정렬하여 "for / f"루프를 만든 다음 X를 주문 번호로하여 "._lenameX.jpg"로 이름을 바꿀 수는 있지만 다른 경우에는 그렇게 생각했습니다. -나중에 비슷한 문제가 발생하면 누군가가 일부 명령을 수정할 수 있습니다.
kokbira

"delims = ¯"대신 "delims ="를 사용할 수 있습니다 (: D를 잊어 버렸습니다). 또한 당신은 / f "delims ="에 대해 / f intead를 사용할 수 있습니다. 그 경우에는 내가 원하는 것을하기 때문입니다.
kokbira

3

모두 같은 폴더에있는 경우 Control+를 사용 하여 모두 A선택한 다음 F2하나를 눌러 이름을 바꿀 수 있습니다. 모든 후속 파일의 이름은 file (2), file (3) 등입니다.


3

Windows 7에 사전 설치된 Powershell을 사용해보십시오.

Get-Childitem /path/to/your/files | foreach-object { move-item $_ $("._" + $_.name) }

(내 다운로드 디렉토리에서 테스트했습니다.)

편집 : Siim K의 코드는 모든 "._filename.jpg"에 추가 ".jpg"를 추가합니다. Siim K의 코드에서 마지막 ".jpg"를 제거하면 파일 이름을 바꿀 수있는 짧고 우아한 코드가 있습니다.


감사합니다. 확장명 조작이 필요하고 알지 못하는 유사한 이름 바꾸기 명령의 코드를 재사용했습니다.
Siim K


0

Flash Renamer 는 파일을 일괄 적으로 이름을 바꾸는 데 유용한 도구라는 것을 항상 알고 있었습니다.

그것은 시험판과 정식 버전 ($ 20)을 가지고 있으며 메타 데이터를 기반으로 파일 이름을 바꿀 수 있습니다-주로 내가 사용하는 MP3 파일의 이름을 바꾸는 데 매우 유용합니다.


0

사용자 친화적 인 이름을 바꾸는 방법을 찾고 있다면 무료 도구 인 Ant Renamer를 사용해 볼 수 있습니다. 수행 할 수있는 많은 작업 목록이 있으며 이름을 바꾸기 전에 편리한 미리보기를 제공합니다. 음악, 사진 또는 비디오 라이브러리를 망칠 때 많이 사용합니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.