我遇到了一个批处理文件的问题,我用它来处理大量的.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
第四个和第五个值是我需要的值 - 循环起始点和循环长度
由于某种原因,endloop值反复使用文本文件最后一行的数字! e.g
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
等
请帮助,这非常令人困惑!
答案 0 :(得分: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
代码块结束之后。
答案 1 :(得分:2)
@echo off
@echo -------CONVERSION---------
setlocal enableDelayedExpansion
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
)