디렉터리의 모든 파일 이름을 순차적 기본값으로 바꿉니다.

디렉터리의 모든 파일 이름을 순차적 기본값으로 바꿉니다.

하위 디렉터리( )에 mp3 파일 세트가 있고 mayorffmpeg(예: ffmpeg -i <input_file> -ar 44100 -ab 128k -f mp3 <output_file>)를 사용하여 각 파일을 변환하고 결과 파일을 형제 폴더에 mayor_out순차적 패턴으로 저장하려고 합니다. 일부 스택의 질문을 시도해 보았지만 FOR파일/디렉토리 반복에서 이를 수행하는 방법을 아무도 설명하지 않았으므로 새로운 질문을 합니다.

답변1

글쎄, 나는 이 .bat 스크립트를 사용하여 이 작업을 수행했습니다.이 답변)

@echo off
cd /D mayor
set _num=1
FOR /R %%X IN (*.mp3) DO call :body %%X
goto :eof

:body
ffmpeg -i %1 -ar 44100 -ab 128k -f mp3 ../mayor_out/YAL_m%_num%.mp3
set /a "_num=_num+1"
goto :eof
pause

답변2

다음 Powershell은 필요한 명령을 수행하고 필요에 따라 경로를 조정해야 합니다.

  1. "ProcessMp3.ps1"이라는 "부모" 디렉터리(예: C:\parent\)에 파일을 만들고 아래 코드를 추가합니다.

    ForEach($i in Get-ChildItem -filter "*.mp3" -Path "C:\parent" ){  
       ffmpeg -i $i -ar 44100 -ab 128k -f mp3 ".\sibling\$i"
    }
    
  2. 상위 디렉터리 아래에 "sibling"이라는 디렉터리를 만듭니다(예: "C:\parent\sibling\").

  3. 명령 프롬프트에서 다음을 실행합니다.

    Powershell ./ProcessMp3.ps1
    

순차가 파일 이름에 접두사로 1,2,3 등을 추가하는 것을 의미하는 경우 스크립트는 다음과 같습니다.

$c=1
ForEach($i in Get-ChildItem  -filter "*.mp3" -Path "C:\parent" ){  
  ffmpeg -i $i -ar 44100 -ab 128k -f mp3 ".\sib\$c-$i"
  $c++
}

관련 정보