CLI를 통해 Windows 대량 이름 바꾸기 중간 파일 이름?


13

원본 파일

File 15 - Example.txt
File 2 - Example.txt
File 22 - Example.txt
File 3 - Example.txt
File 4 - Example.txt
File 5 - Example.txt

원하는 출력

File 15 - Example.txt
File 02 - Example.txt
File 22 - Example.txt
File 03 - Example.txt
File 04 - Example.txt
File 05 - Example.txt

로 단일 파일의 이름을 쉽게 바꿀 수 있습니다 ren.

ren "File 2 - Example.txt" "File 02 - Example.txt"

Windows ren또는 rename도구를 사용하여 대량으로 이름을 바꿀 수 있습니까?


1
이 유형의 작업을 쉽게 만드는 멋진 무료 유틸리티 .... bulkrenameutility.co.uk/Main_Intro.php
Moab

나는 동의한다. 이를위한 GUI 기반 솔루션의 이름을 많이 지정할 수 있으며 CLI에 대한 주장이 왜 궁금한지 궁금합니다.
Mawg는 Monica

@Mawg, 그 GUI 도구로 스크립팅을 할 수 있습니까?
Sabrina

AutoIt을 사용할 수는 있지만 권장하지는 않을 것입니다 :-) CLI에 대한 어려운 요구 사항이 있는지 궁금해했으며 이제는있는 것처럼 보입니다. 명확히 주셔서 감사합니다
Mawg는 분석 재개 모니카 말한다

답변:


13

Windows ren 또는 이름 바꾸기 도구를 사용하여 대량으로 이름을 바꿀 수 있습니까?

예, 그러나 배치 파일이 필요합니다.

test.cmd :

@echo off
setlocal EnableDelayedExpansion
for /f "tokens=1,2,3,4" %%i in ('dir /b *Example.txt') do (
  rem pad 2nd token with leading zero
  set _num=0%%j
  set _num=!_num:~-2!
  ren "%%i %%j %%k %%l" "%%i !_num! %%k %%l"
  )
endlocal

예:

> dir *Example.txt
 Volume in drive F is Expansion
 Volume Serial Number is 3656-BB63

 Directory of F:\test\test

03/01/2019  11:30                 0 File 15 - Example.txt
03/01/2019  11:30                 0 File 2 - Example.txt
03/01/2019  11:30                 0 File 22 - Example.txt
03/01/2019  11:30                 0 File 3 - Example.txt
03/01/2019  11:30                 0 File 4 - Example.txt
03/01/2019  11:30                 0 File 5 - Example.txt
               6 File(s)              0 bytes
               0 Dir(s)  1,075,134,230,528 bytes free

> ..\test

> dir
 Volume in drive F is Expansion
 Volume Serial Number is 3656-BB63

 Directory of F:\test\test

03/01/2019  11:54    <DIR>          .
03/01/2019  11:54    <DIR>          ..
03/01/2019  11:30                 0 File 02 - Example.txt
03/01/2019  11:30                 0 File 03 - Example.txt
03/01/2019  11:30                 0 File 04 - Example.txt
03/01/2019  11:30                 0 File 05 - Example.txt
03/01/2019  11:30                 0 File 15 - Example.txt
03/01/2019  11:30                 0 File 22 - Example.txt
               6 File(s)              0 bytes
               2 Dir(s)  1,075,134,230,528 bytes free

추가 자료


17

이 PowerShell을 하나 라이너 두 위치에 파일 이름에 모든 숫자를 확장됩니다 .PadLeft(2,'0'):
(그리고 더 많은 장소의 손길이 닿지 않은으로 번호를 남겨)

Get-ChildItem *[0-9]*.txt|Rename-Item -NewName {([regex]::Replace($_.BaseName,'\d+',{$args[0].Value.PadLeft(2,'0')}))+$_.Extension}

cmd 줄 / 배치 파일에 싸여 주제에 있어야합니다.

Powershell -Nop -C "Get-ChildItem *[0-9]*.txt|Rename-Item -NewName {([regex]::Replace($_.BaseName,'\d+',{$args[0].Value.PadLeft(2,'0')}))+$_.Extension}"

명령을 실행하기 전에 안전을 유지하려면 다음 중 하나를 추가하십시오.

  • -Confirm 이름 바꾸기 전에 묻습니다.
  • -WhatIf이는 모두 나열 이름 바꾸기는 매개 변수없이 실행

마지막 앞에서 "


3

편집 : 방금이 질문이 명령 줄에서 이름을 바꾸는 것에 관한 것임을 알았습니다. 그래서 질문에 직접 대답하지 않습니다 ... 지금은 다른 사람들에게 유용 할 것으로 기대하면서 계속하겠습니다.


총 사령관의 파일 관리자는 우수한 대량 이름 바꾸기 도구가 있습니다. 여기에는 이름 바꾸기 미리보기, 다른 이름 바꾸기 마스크, 정규식, 전체 폴더 계층 구조에서 파일 이름 바꾸기 등을 포함한 많은 기능이 포함됩니다. 동시에 사용하기가 매우 쉽습니다.

사용법을 보여주는 스크린 샷은 다음과 같습니다.

총 사령관 다중 이름 변경 예

단계별 :

  1. Total Commander를 다운로드 하여 실행하십시오.
  2. 이름을 바꿀 파일이있는 폴더로 이동하십시오.
  3. 이름을 바꿀 파일을 표시하십시오.
    • 폴더의 모든 파일을 표시하기위한 옵션 1- Ctrl+A
    • 옵션 2- Space키 또는 마우스 오른쪽 버튼을 사용하여 파일을 하나씩 표시 하십시오.
    • 옵션 3- "파일 찾기"( Alt+ F7)를 열고 " *.txt검색 대상"상자에 입력 한 다음 "검색 시작"을 클릭하고 "목록 상자에 피드"를 누른 다음 Ctrl+로 파일을 표시하십시오 A. 내부 폴더에서도 파일 이름을 바꾸려면이 기술을 사용하십시오.
  4. Ctrl+ M를 눌러 다중 이름 변경 도구를 엽니 다.
  5. "검색"및 "바꾸기"상자에서 원하는 값을 설정하십시오. 정규식을 사용하는 경우 RegEx 상자를 선택하십시오.
  6. "시작!"을 누르십시오.

-2

ren *.bat *.txt이름의 다른 부분을 유지하는 일치하는 모든 파일에서 확장자의 이름을 바꾸는 작업을합니다. 이 ren명령 을 남용하여 일련의 명령 을 실행할 수 있습니까?

  • ren "File *" "File 0*"
  • ren "File 00*" "File 0*"
  • (같은 매달린 나머지를 다루는 File 022 - Example.txt

1
이것은 도움 이 되지 않습니다 , 당신은 당신의 명령이 무엇을하는지 확인 했습니까? 2-> 0, 22-> 02, 15-> 05.
LotPings

아니요, Windows OS가 없으므로 시도하지 않았습니다. 그러나 나는 REN이 이것을 할 수 있다는 것을 몇 년 동안 기억했습니다. 어쨌든 제안을하려고했습니다.
Douglas 님이
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.