2017-11-29 1 views
-4

구매 한 mp3 파일은 종종 원래 앨범 순서의 일부로 파일 이름에 앞에 오는 숫자, 공백 및 하이픈을 포함합니다. 하지만 모든 중첩 된 디렉터리/폴더를 통해 주요 문자를 재귀 적으로 제거하고 싶습니다.중첩 된 디렉토리의 파일 이름에서 선행 문자를 재귀 적으로 제거합니다.

재귀 스크립트를 PowerShell 및 정규식과 결합하려고 시도했지만 올바른 구문을 얻을 수 없습니다. (Recursively renaming files with Powershell에서 찾은 재귀 예제의 replace 메서드에서 regex를 사용하여 시도했습니다.)

나는 또한 Command Window/Prompt, PowerShell 및 Bash 스크립트를 사용하여 다른 방법을 연구했습니다. 그리고 제 3 자 소프트웨어를 피하고 싶습니다.

현재 :

C:\mp3\soundtracks\some movie\some song.mp3 
C:\mp3\soundtracks\some other movie\some other song top 100 - by someone.mp3 
C:\mp3\mix\crazy\nested\deep\some cool song.mp3 
C:\mp3\mix\crazy\nested\deep\some cooler song.mp3 

보너스 : 일부 공상 쉘 스크립트 후

C:\mp3\soundtracks\some movie\03 - some song.mp3 
C:\mp3\soundtracks\some other movie\09 some other song top 100 - by someone.mp3 
C:\mp3\mix\crazy\nested\deep\12 some cool song.mp3 
C:\mp3\mix\crazy\nested\deep\06some cooler song.mp3 

여기

는 일부 일부 스크립트의 결과를 반환해야하는지의 예입니다 그것은해야하는 것이 가능 이 프로세스를 수행 할 때 파일 이름을 중복하십시오. 첫 번째 중복 파일 끝에 "(1)"을 추가하겠습니까? 아니면 세상이 끝나나요? 아니면 어떻게 든 스크립트에서 처리 할 수있는 무언가가 있습니까? (모든 파일 형식) PowerShell로

+4

보너스 : 당신이 시도한 것을 올리면 될 것입니다 ... –

+0

제목이 숫자로 시작하는 노래는 어떻습니까? – gvee

+0

@gvee 그가 준 첫 번째, 두 번째, 세 번째 및 네 번째 예와 같은 뜻입니까? –

답변

-1

:

Get-ChildItem *.mp3 -Recurse | Rename-Item -NewName { $_.Name -replace '^[\d\s-]+','' }

고장 :

만 MP3 파일

Get-ChildItem -File - 현재 작업 디렉토리에

-Recurse을 중첩 된 파일을 가져 오기 - 모든 하위 디렉토리 '(하위 폴더') 파일을 통해 재귀 적으로 검색 할 수 있습니다.

| - 구문 마커; 당신은 새 이름으로 각 파일의 이름을 바꾸려면 (또는 그것의 일부 교체)

{ $_.Name -replace ... }을 - -

Rename-Item -NewName "무엇 다음 것은 내가 그것을 잡고 각 파일에 대해 일이 원하는 것입니다"를 의미하는 각 파일 이름은 "$ _.Name "나는

'^[\d\s-]+' 그것의 일부만을 대체 할거야 - 하나 이상의 최고의 숫자, 공백을 교체하고 하이픈

, - ... 쉼표 ...

'' - 아무 것도 없음. 의미, 문자를 제거하고 아무것도로 교체하지 마십시오.

보너스 : 파일이 선두 문자를 제거한 후 같은 디렉토리에있는 다른 파일과 같은 이름을 얻을 것입니다 때, 다음과 같은 중복라는 이름의 파일들이 사전에 스크립트 파일 이름을 유지으로 되돌아갑니다

.

+0

['+'는 특수 문자 임] (http://regular-expressions.mobi/reference.html?wlr=1),'-'는 그렇지 않습니다. – Clijsters

+0

@Clijsters 때로는 범위 토큰으로 사용되지 않았 음을 시각적으로 나타 내기 위해 하이픈을 이스케이프 처리하도록 선택합니다. 그러나, 나는 불필요한 탈출을 제거하는 대답을 업데이트했다. –

+0

그러나'+'는 여전히 이스케이프되지 않습니다. – Clijsters

관련 문제