1

ツールで大量の .wav 音楽ファイルを処理するために作成したバッチ ファイルに問題があります。エンコードされた形式では、ループの開始点と終了点がエンコードされます。

@echo off
@echo -------CONVERSION---------
for /f "tokens=1-5" %%l in (test.txt) do (
  @echo %%n.wavを%%ni.fcoへ変換中です
  @echo %%o %%p
  set /a endloop1=%%o
  set /a endloop2=%%p
  set /a endloop=endloop1+endloop2
  @echo %endloop1% %endloop2% %endloop%
  contool -e -br 144 -loop %endloop1% %endloop% ed%%n.wav ed%%n.fco

そして、値全体を読み取っているtest.txtファイルは

bgmtbl BGM_Title    7552 73664   4997136    
bgmtbl BGM_GameOver 7534 22464   4014400    
bgmtbl BGM_Midtown  7101 773184  3718720
bgmtbl BGM_Cross_1  7102 112838  5827154

4 番目と 5 番目の値は、必要な値です。ループの開始点とループの長さです。

何らかの理由で、endloop の値は、テキスト ファイルの最後の行の数値を何度も使用しています。例えば

7552.wavを7552i.fcoへ変換中です
73664 4997136
112838 5827154 5939992
your parametter doesn't satisfy under the condition
0<= loopstart(112838) <= loopend(5939992) < Total Sample(5118208) element=0/1

7534.wavを7534i.fcoへ変換中です
22464 4014400
112838 5827154 5939992
your parametter doesn't satisfy under the condition
0<= loopstart(112838) <= loopend(5939992) < Total Sample(4125696) element=0/1

助けてください、これは非常に困惑しています!

4

2 に答える 2

3

別の可能性:

@echo off &setlocal
for /f "tokens=1-5" %%l in (test.txt) do (
  echo %%n.wavを%%ni.fcoへ変換中です
  echo %%o %%p
  set /a endloop1=%%o
  set /a endloop2=%%p
  set /a endloop=%%o+%%p
)
echo %endloop1% %endloop2% %endloop%

ここでは必要ありませんdelayed expansion。への最初のアクセスは、 コード ブロック%variables% の終了後です。for

于 2013-07-12T07:43:05.880 に答える