답변:
나는 당신의 제목에서 당신이 "해야 할 일"이라고 말하지만 당신이 이것을 할 수있는 방법을 찾고 있다는 것이 가장 좋은 방법인지 궁금합니다.
내가 찾은 최고의 도구는 Bulk Rename Utility 입니다.
명령 행 도구는 아니지만 실제로 사용하려는 경우 명령 행 버전 이 있습니다.
GUI 버전을 많이 사용했으며 매우 강력하고 빠르며 사용하기 쉽습니다.
아, 개인적 으로 무료 입니다.
작은 PowerShell 스크립트 :
$args | Rename-Item -NewName { $_.Name.ToLower() -replace '\d+ - ' }
보다 복잡한 정규식과 결합하면 다음과 같이 될 수 있습니다.
ls | Rename-Item -NewName {$_ -replace '(\d+) - (.*).mp3', '$2 - $1.mp3' }
'01-Beginning.mp3 '과 같은 것을'Beginning-01.mp3 '으로 바꿉니다.
-WhatIf
매개 변수 on Rename-Item
을 사용하여 이름을 발행하기 전에 이름을 확인하십시오.
... -replace '\d+ - ',''
. 또한 첫 번째 것이 더 좋다고 생각합니다. 정규식을 사용하여 시작 부분을 제거하십시오. 비록 식의 시작 부분에 ^ 앵커를 포함시켜야한다고 믿지만 숫자로 시작하는 이름과 만 일치합니다.
-replace
오른쪽에 하나의 인수 만 가질 수 있으며,이 경우 두 번째 인수는 암시 적으로 빈 문자열입니다.
실제로 Windows 명령 행을 사용하려는 경우 (다운로드하지 않으려는 경우) 다음과 같이 수행 할 수 있습니다.
dir /B > fileList.txt
for /f "tokens=1,2,3" %i in (fileList.txt) DO ren "%i %j %l" %l
첫 번째 줄은 파일 목록을 fileList.txt라는 파일로 출력합니다. 두 번째 줄은 목록의 각 이름을 #, "-"및 나머지 이름의 세 부분으로 구분합니다. 각각에 대해 rename 명령을 수행합니다.
AntRenamer를 사용하면 이름 변경 패턴을 쉽게 정의 할 수 있습니다. 이미 준비된 것들이 많이 있습니다 (그리고 작업을 미리 볼 수 있습니다).
개인 및 상업용으로 무료입니다.
오래된 학교:
DIR * .TXT> TEMP.BAT와 같이 DIR을 수행하고 출력을 파일로 리디렉션 할 수 있습니다.
그런 다음 편집기를 사용하여 필요없는 부분을 꺼내고 필요한 부분을 수정하십시오. "@echo off"를 맨 위 줄로 추가하고 저장 한 후 실행하십시오.
다른 옵션 : Massive File Renamer
여러 파일과 파일 확장자의 이름 을 쉽게 바꿀 수 있습니다 . 매우 빠르고 간단합니다!
고급 사용자 및 개발자의 경우 정규식 을 사용할 수 있습니다 .
실제로보기 :
내가 만족했던 도구는 ReNamer 입니다. 또한 동일한 이름 변경을 여러 번 수행하므로 이름 변경 규칙 저장을 지원합니다.
아래는 첫 번째 대시 전에 텍스트를 삭제하는 방법의 예이지만 정의 할 수있는 다른 규칙이 많이 있습니다.
이를 위해 Free Commander Portable (프리웨어)을 사용했습니다.
가장 쉬운 방법은 마스터 이름 바꾸기 를 사용하는 것 입니다.
다음은 명령 줄 솔루션입니다. 파일 이름의 "패턴"으로 쉽게 작업 할 수 있도록 특별히 작성한 Java 프로그램입니다. 무료이며 오픈 소스이므로 자유롭게 수정하십시오.
이름 바꾸기 및
http://renamewand.sourceforge.net/
관련 사용 예 :
"-"
파일 이름에서 앞에 모든 것을 삭제 하십시오.
java -jar RenameWand.jar "<a> - <b>" "<b>"
파일 이름 앞에 3 자리 숫자를 붙여 마지막으로 수정 한 시간별로 정렬합니다.
java -jar RenameWand.jar "<a>" "<3|#FT> <a>"
파일 이름의 일부를 재정렬하고 대소 문자를 변경하십시오.
java -jar RenameWand.jar "<album> - <artist> - <song>.<ext>"
"<artist.upper> <album.title> - <song>.<ext.lower>"
한 달 전에 RenPhoric을 발견 했습니다 . 훌륭한. 그리고 그것은 무료 입니다.
복잡한 인터페이스가 없었으며 원하는대로 신속하게 이름을 바꿀 수있었습니다. 정규식 가능. 그 이후로 다른 것을 사용하지 않았습니다.
Cylog의 WildRename을 좋아 합니다. 강력하지만 사용하기 쉽고 많은 기능이 있습니다.
위의 @zdan과 마찬가지로 명령 줄 (Windows에서 "cmd.exe"사용) 로이 작업을 수행했습니다. 내 특별한 경우에는 약간의 고민이 있었지만 약간의 연구로 해결되었습니다.
zdan처럼, I 출력 TXT 파일의 목록은 다음에 사용 tokens
하고 delims
그에 따라 파일의 이름을 변경 할 수 있습니다. 필자의 경우 다음과 같은 이름의 파일 목록으로 시작했습니다.
name-01-02-2012.csv
파일 날짜 부분이 y / m / d 순서로되어 있고 끝에 "name"부분이 있으므로 다음과 같이 읽습니다.
2012-01-02-name.csv
이 en-masse를 수행하기 위해 다음 코드를 사용했습니다. 이 방법으로 파일 이름의 ".csv"확장자를 포함한 모든 부분이 고려됩니다. 그것은 처음으로 나를 위태롭게했다.
dir /B > fileList.txt
for /f "tokens=1,2,3,4,5 delims=-." %i in (fileList.txt) DO ren "%i-%j-%k-%l.%m" %l-%j-%k-%i.%m
(가) tokens
파일 이름의 "부분"이다는이 delims
분리기입니다. 필자의 경우 두 개의 구분 기호 (대시 및 점)가있었습니다.
나는 개인적으로 "대량 이름 변경"앱을 신경 쓰지 않습니다. 다른 사람들이 언급했듯이 GUI는 끔찍하고 직관적이지 않습니다. 약간의 연구와 간단한 코딩으로 이러한 작업을 효율적이고 신속하게 수행 할 수 있습니다.
재미있는 이름과 명령 줄 도구는 매우 강력하고 빠르고 매우 사용하기 쉽습니다. "텍스트 찾기 및 바꾸기"FART http://fart-it.sourceforge.net/ WORKS GREAT! txt 파일에서도 단어의 이름을 바꿀 수 있습니다.
Usage: FART [options] [--] <wildcard>[,...] [find_string] [replace_string]
Options:
-h --help Show this help message (ignores other options)
-q --quiet Suppress output to stdio / stderr
-V --verbose Show more information
-r --recursive Process sub-folders recursively
-c --count Only show filenames, match counts and totals
-i --ignore-case Case insensitive text comparison
-v --invert Print lines NOT containing the find string
-n --line-number Print line number before each line (1-based)
-w --word Match whole word (uses C syntax, like grep)
-f --filename Find (and replace) filename instead of contents
-B --binary Also search (and replace) in binary files (CAUTION)
-C --c-style Allow C-style extended characters (\xFF\0\t\n\r\\ etc.)
--cvs Skip cvs dirs; execute "cvs edit" before changing files
-a --adapt Adapt the case of replace_string to found string
-b --backup Make a backup of each changed file
-p --preview Do not change the files but print the changes
-f
옵션입니다.
다중 이름 바꾸기 스크립트는 스크립트를 통해 운전할 수있는 Total Commanders Multi Rename 도구의 오픈 소스 대안입니다. 메타 데이터 정보에 TC 플러그인을 사용할 수 있습니다.
@ 에코 오프 setlocal enabledelayedexpansion X = 5로 설정 FOLDER_PATH =를 설정하십시오. % FOLDER_PATH % 푸시 % * f in % * f의 경우 %% f neq % ~ nx0 ( "filename = %% ~ nf"설정 "filename =! filename : ~ % X %!"설정 ren "%% f" "! filename! %% ~ xf" ) 팝
이것을 배치 파일에 저장하고 실행하십시오.
set /p "X=Enter the value for X: "
저는 칠판을 사용하여 대학에서 과정을 관리합니다. 과제를 대량으로 다운로드하면 (칠판에서 채점 열 상단을 클릭 한 다음 "할당 파일 다운로드") 칠판에 파일 이름에 많은 추가 항목이 추가되어 파일 이름이 너무 길어 Windows에서 유효하지 않게됩니다.
다음은 그들이 어떻게 생겼는지입니다 :
Recitation20Assignment_studentname_attempt_2013-03-01-20-03-09_Exercise28129.docx
그리고 이것은 내가 원하는 것입니다
studentname.docx
따라서 @zdan 및 @ gtr1971에서 권장하는 방법을 사용하여 파일 (CMD.EXE)이있는 폴더에서 명령 창을 열었습니다. 그런 다음이 명령을 실행하여 모든 파일 이름을 문서에 넣으십시오.
dir /b >filelist.txt
문서를 편집하고 폴더 이름 등을 제거하십시오.
Blackboard 추가 파일 이름 항목을 사용자 이름 및 파일 확장자로 바꾸려면이 명령을 사용하십시오.
for /f "tokens=1,2,3,4,5,6 delims=_." %i in (filelist.txt) do ren "%i _%j_%k_%l_%m.%n" %j.%n
이것이 다른 누군가에게도 도움이되기를 바랍니다.
파일 이름을 바꾸는 데 사용할 수있는 File Attribute Changer라는 또 다른 간단한 프로그램이 있습니다. 휴대용 프로그램이므로 USB 드라이브로 휴대 할 수 있습니다.
정규식 검색을 수행하여 파일 또는 폴더의 이름을 바꾸고 이름을 바꿀 수있는 JREN.BAT라는 하이브리드 JScript / 배치 명령 줄 유틸리티를 개발했습니다 . XP 이후의 모든 Windows 시스템에서 기본적으로 실행되는 순수한 스크립트입니다. 전체 문서가 스크립트 내에 포함되어 있습니다.
JREN.BAT가 현재 디렉토리에 있거나 경로의 어딘가에 있다고 가정하면 이름 바꾸기 작업이 쉽지 않습니다.
jren "^\d+[ -]+(.+)\.txt$" "$1" /i
또는
jren "^\d+[ -]+(?=.+\.)" "" /fm "*.txt"
/S
서브 디렉토리에서 재귀 적으로 이름 바꾸기를 수행하는 옵션을 포함하여 많은 옵션이 있습니다 .
강력한 힘이 필요하고 돈을 버릴 의향 이 있다면 PowerGrep 은 시장에서 가장 강력하고 다양한 도구 중 하나입니다 . PowerGrep 으로 거의 모든 이름을 바꿀 수 있습니다. 심지어 이진 검색 및 교체 ... RegEx Guru, Jan Goyvaerts에 의해 작성되었습니다 .