送る(Send To)で複数のファイルをバッチファイルで処理する方法

 wavファイルをffmpegでmp3に変換する時、複数のファイルが変換できなかったのでバッチファイルで出来るようにしました。

 

インストール

下記のコードを保存して、拡張子をbatにしてsendtoフォルダーに移動します。

sendtoフォルダーは、エクスプローラのアドレスバーに sendto を入力してエンターすると開けます。

@echo off

:loop
IF NOT "%~1"=="" (echo %~dpnx1) ELSE (goto :confirm)
C:\tools\kdenlive-22.04.0-1_standalone\bin\ffmpeg.exe -vn -y -i "%~dpnx1" "%~dpnx1.mp3"

shift
goto :loop

:confirm

pause

メモ

ffmpeg.exeの場所は、環境によって変える必要があります。

shiftで引数の位置をずらす事が出来る様です。

下の行が実際のコマンドの処理でffmpegを実行しています。

C:\tools\kdenlive-22.04.0-1_standalone\bin\ffmpeg.exe -vn -y -i "%~dpnx1" "%~dpnx1.mp3"

%~dpnx1はファイル名です。

 

参考サイト

空っぽを比較する方法は色々あるようです

IF NOT "%~1"=="" (echo Percent Tilde 1 failed with quotes) ELSE (echo SUCCESS)
IF NOT [%~1]==[] (echo Percent Tilde 1 failed with brackets) ELSE (echo SUCCESS)
IF NOT  "%1"=="" (echo Quotes one failed) ELSE (echo SUCCESS)
IF NOT [%1]==[] (echo Brackets one failed) ELSE (echo SUCCESS)
IF NOT "%1."=="." (echo Appended dot quotes one failed) ELSE (echo SUCCESS)
IF NOT [%1.]==[.] (echo Appended dot brackets one failed) ELSE (echo SUCCESS
 
https://qastack.jp/programming/2541767/what-is-the-proper-way-to-test-if-a-parameter-is-empty-in-a-batch-file
 

yuki

初めての作業で調べた事、困った時の解決方法を記録するブログ。 主なテーマは、パソコン、プログラミング、カメラ、DTM、スピリチュアル、化学物質過敏症

コメントを投稿

Please Select Embedded Mode To Show The Comment System.*