하위 디렉터리( )에 mp3 파일 세트가 있고 mayor
ffmpeg(예: 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은 필요한 명령을 수행하고 필요에 따라 경로를 조정해야 합니다.
"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" }
상위 디렉터리 아래에 "sibling"이라는 디렉터리를 만듭니다(예: "C:\parent\sibling\").
명령 프롬프트에서 다음을 실행합니다.
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++
}