@ECHO OFF
SET BATDIR=%~dp0
SET SOFDEC2ENC=C:\cri\tools\Sofdec2\sofdec2enc.exe

REM //--------------------------------------------------------------------------
REM // * Tue Aug 23 21:53:38 JST 2016 Naoyuki Sawa
REM // - 1st リリース。
REM //   カレントフォルダ以下に有る*.aviファイルを、全て*.usmファイルに変換するバッチスクリプトの雛型です。
REM //   実際には、このバッチスクリプトそのままであらゆるケースに対応する事は出来ないと思うので、適宜コピーして変更して下さい。
REM // * Sat Apr 07 23:59:59 JST 2018 Naoyuki Sawa
REM // - ファイル名に空白を含むファイルも変換出来るようにしました。
REM //   これまでは、ファイル名に空白が含まれていると間違って分割してしまっており、正しく変換出来ていませんでした。
REM //   ファイル名に空白が含まれている可能性が有る場合は、'delims='の指定が必要でした。
REM //   □参照資料:「Programming Field」(https://www.pg-fl.jp/)さんの、『DOS コマンド一覧 - For』(https://www.pg-fl.jp/program/dos/doscmd/for.htm)の記事より引用:
REM //   │delimitersを記述しない空の「delims=」指定と、「delims」指定そのものを省略した構文とでは、区切り文字に関する意味が異なります。
REM //   │区切り文字で分割せずに行全体を変数に与えたい場合は、明示的に「delims=」と指定を入れる必要があります(さらにスペースが区切り文字として扱われないように、必ず最後の指定にする必要があります)。

REM //--------------------------------------------------------------------------
COLOR C
ECHO ★★危険☆☆危険★★危険☆☆危険★★危険☆☆危険★★危険☆☆危険★★危険☆☆危険★★危険☆☆危険★★
ECHO │このバッチスクリプトは、カレントフォルダ以下の、*.usmファイルを、全て削除します。               │
ECHO │間違ったフォルダで実行すると非常に危険なので、パスが通ったフォルダには置かないようにして下さい。│
ECHO │プロジェクトの素材フォルダ内に、このバッチスクリプトをコピーして、直接実行するようにして下さい。│
ECHO ★★危険☆☆危険★★危険☆☆危険★★危険☆☆危険★★危険☆☆危険★★危険☆☆危険★★危険☆☆危険★★
ECHO.
ECHO 本当に実行するならば、三秒後に、何かキーを押して下さい。
ECHO やっぱりやめるならば、コマンドプロンプトを閉じて下さい。
ECHO.
TIMEOUT /T 3 /NOBREAK
COLOR 7
PAUSE

REM //--------------------------------------------------------------------------
REM //カレントフォルダ以下に有る、*.usmファイルを、全て削除する。
DEL /S *.usm

REM //--------------------------------------------------------------------------
REM //スケーリングを行う場合は、下記の行を有効にして、サイズを適切に変更して下さい。
REM //sofdec2enc.exeは、パーセントでの指定は行えず、ピクセルサイズで指定する必要が有ります。
REM //	SET SCALE=-scale=540,960

REM //--------------------------------------------------------------------------
REM //クオリティ設定は、以下のいずれかの行を選択して下さい。
REM //上から順に、ハイクォリティ，ミドルクォリティ，ロークォリティです。
REM //オプションを何も指定しないのが、ハイクォリティに相当するものとしました。(見た目に充分過ぎるほどハイクォリティなので。)
REM //通常は、ミドルクォリティで充分だと思います。
REM //ロークォリティは、容量節約効果が小さい割に劣化が激しいので、あまり使えないと思います。
REM //尚、-qmf_rangeオプションについては、C:\cri\tools\Sofdec2\CRI_Sofdec2_Tools_Manual_j.chmの「Tips - 高圧縮なムービデータをエンコードするには？」を参照して下さい。
REM //	SET QUALITY=
	SET QUALITY=-bitrate=0 -br_range=0,0 -qmf_range=0.0,0.0 -alpha_quality=0
REM //	SET QUALITY=-bitrate=0 -br_range=0,0 -qmf_range=0.0,0.0 -alpha_quality=0 -hcfilter=ON

REM //--------------------------------------------------------------------------
REM //カレントフォルダ以下に有る、*.aviファイルを、全て変換する。
REM //アルファ付きムービーでない場合は、-alpha00オプションは無視されるので、常に指定して問題有りません。
REM //{{2018/04/07変更:ファイル名に空白を含むファイルも変換出来るようにしました。
REM //FOR /F "usebackq" %%i IN (`DIR /B /S *.avi`) DO (
REM //↓2018/04/07変更:ファイル名に空白を含むファイルも変換出来るようにしました。
FOR /F "usebackq delims=" %%i IN (`DIR /B /S *.avi`) DO (
REM //}}2018/04/07変更:ファイル名に空白を含むファイルも変換出来るようにしました。
  %SOFDEC2ENC% -video00="%%i" ^
               -alpha00="%%i" ^
               -out="%%~dpni.usm" ^
               %SCALE% ^
               %QUALITY%
  IF ERRORLEVEL 1 GOTO L_ERR
)

REM //--------------------------------------------------------------------------
ECHO 完了しました。
	TIMEOUT /T 3 /NOBREAK
EXIT /B

REM //--------------------------------------------------------------------------
:L_ERR
ECHO ###エラーが発生しました。
	PAUSE
EXIT /B 1
